README.md
# Vendored libraries
## Cryptography
### ocaml-bls12-381
- Provides BLS12-381 fields, curves and pairing. The UNIX version relies on the Rust
implementation [bls12_381](https://github.com/zkcrypto/bls12_381).
- Cloned from: [ocaml-bls12-381](https://gitlab.com/dannywillems/ocaml-bls12-381).
- As there is
no efficient way to integrate Rust codebase into OPAM yet, it has been decided
to vendor the library until a solution is found.
#### Differences with the initial library
- `benchmark` directory has been removed
- For the Rust dependencies, Tezos is moving to a virtual OPAM package called
[tezos-rust-libs](https://gitlab.com/tezos/tezos-rust-libs). As of version
0.3.13 of ocaml-bls12-381, the dune stanzas for the UNIX version suppose the
Rust static library and C headers are available in
`OPAM_SWITCH_PREFIX/lib/rustc-bls12-381` and
`OPAM_SWITCH_PREFIX/include/rustc-bls12-381`. The integration of the virtual
OPAM package in Tezos does require a change in the dune configuration and
replaces `rustc-bls12-381` by `tezos-rust-libs`
## Snoop
Some dependencies of `lib_benchmark` are placed in vendors instead of e.g.
directly
being put in lib_benchmark, because they could be useful to do more than just
benchmarks but are not mature enough to be upstreamed. See <https://gitlab.com/tezos/tezos/-/issues/1523>
for more details.
### pyml-plot
- Contains pyml-based OCaml-Python bindings to matplotlib.
- Cloned from: [pyml-plot](https://gitlab.com/igarnier/pyml-plot)
- Dependency to lib-benchmark.
#### Differences with the initial library
None
### benchmark-utils
- Contains no tests; just stubs to system calls so unclear what we would be testing.
- C stubs useful for benchmarking, pinning cpus, ...
- Cloned from: nowhere
- Dependency to lib-benchmark. Contains manually written OCaml-C bindings.
#### Differences with the initial library
None
## Misc
### ocaml-ledger-wallet
- Library used by `tezos-client` to interact with the Ledger family of hardware
wallets.
- Cloned from: [ledgerwallet](https://opam.ocaml.org/packages/ledgerwallet/)
and [ledgerwallet-tezos](https://opam.ocaml.org/packages/ledgerwallet-tezos/)
- Reason for vendoring: unknown
#### Differences with the initial library
Unknown
#### Differences with the initial library
The ocaml bindings are slowly evolving to serve Tezos.
The C code has not evolved much.
### webassembly-spec
- WebAssembly reference interpreter for SCORU's WASM purposes
#### Differences with the initial library
Various changes that are required for SCORU WASM's needs.