5 releases

0.1.4 Dec 7, 2022
0.1.3 Dec 7, 2022
0.1.2 Dec 6, 2022
0.1.1 Dec 5, 2022
0.1.0 Dec 5, 2022

#65 in #tendermint

LGPL-3.0

74KB
1.5K SLoC

embedded-td

Embed tendermint into rust to use tendermint as a crate.

Usage

Add this line into Cargo.toml:

embedded-td = "0.1"

Special tendermint version

Default tendermint version is 0.34.

You can use feature to use different tendermint version.

embedded-td = { version = "0.1", features = ["td_ver_0_34"] }

Build from source

By deafult, this crate use precompile version on github. If you want to build from source, use use_source_code:

embedded-td = { version = "0.1", features = ["use_source_code"] }

This feature can work with version.

embedded-td = { version = "0.1", features = ["use_source_code", "td_ver_0_34"] }

Note: Build from source need go installed.

Building from source can also use non-goleveldb backends:

# Use cleveldb, please install `libleveldb`.
embedded-td = { version = "0.1", features = ["use_source_code", "backend_cleveldb"] }

# Use rocksdb, please install `librocksdb`.
embedded-td = { version = "0.1", features = ["use_source_code", "backend_rocksdb"] }

Custom upstream

If you fork tendermint, use environment EMBEDDED_TD_UPSTREAM_URL as custom upstream's url.

For example:

# source code url, format is .tar.gz
EMBEDDED_TD_UPSTREAM_URL = "http://example.com/tendermint"

Features

You can use these features:

  • Version of tendermint
    • td_ver_0_34(default) tendermint 0.34
    • td_ver_0_37 tendermint 0.37
  • Runtime of async
    • smol-backend(default).
    • tokio-backend
  • How to get tendermint?
    • use_source_code

Supported platfrom

  1. linux, amd64
  2. linux, arm64
  3. linux, armv6
  4. macos, amd64
  5. macos, arm64
  6. windows, amd64
  7. windows, arm64
  8. windows, armv6
  9. other target (only build from source)

1 ~ 8 can work with precompile binary. Beacuse origin tendermin repo only provide these release. If you want to running on other platform, please configure go cross compile.

Test platform

  1. linux, x86_64
  2. windows, x86_64
  3. windows, aarch64
  4. android(termux), aarch64

Dependencies

~18–32MB
~421K SLoC