2aab8f496c
rlp2 is a package that aims to replace the existing erigon-lib/rlp package and the erigon/common/rlp it is called rlp2 for now because it requires breaking changes to erigon-lib/rlp and i do not have the time right now to test all current uses of such functions however, the encoder/decoder characteristics of rlp2 might be desirable for caplin, and also for execution layer parsing blob txns, so im putting it in a folder called rlp2 (note that it exports package rlp for easier switching later) importantly, rlp2 is designed for single-pass decoding with the ability to skip elements one does not care about. it also is zero alloc. |
||
---|---|---|
.. | ||
.github/workflows | ||
bptree | ||
chain | ||
commitment | ||
common | ||
compress | ||
crypto | ||
diagnostics | ||
direct | ||
downloader | ||
etl | ||
gointerfaces | ||
kv | ||
metrics | ||
mmap | ||
patricia | ||
pedersen_hash | ||
recsplit | ||
rlp | ||
rlp2 | ||
sais | ||
state | ||
tools | ||
txpool | ||
types | ||
.gitignore | ||
.golangci.yml | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
README.md | ||
rules.go | ||
tools.go |
erigon-lib
Parts of Erigon codebase, written from scratch and licensed under Apache 2.0.
License requirements
erigon-lib dependencies use various open source licenses compatible with Apache 2.0. This is checked on CI using make lint-licenses
.
In order to keep license purity it is not allowed to refer to the code in the erigon root module from erigon-lib. This is ensured by the go.mod
separation.
It is not allowed to copy or move code from erigon to erigon-lib unless all original authors agree to relief the code license from GPL to Apache 2.0.
Code migration policy
It is encouraged to write new erigon code inside erigon-lib.
It is encouraged to move and relicense parts of the code from erigon to erigon-lib that are safe and easy to move. For example, code written from scratch by erigon core contributors that has no significant external contributions could be refactored and moved.