embedded-td 0.1.4

Running tendermint as rust crate
Documentation
# embedded-td
Embed tendermint into rust to use tendermint as a crate.

## Usage

Add this line into `Cargo.toml`:

```toml
embedded-td = "0.1"
```

### Special tendermint version

Default tendermint version is `0.34`.

You can use feature to use different tendermint version.

```toml
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`:

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

This feature can work with version.

```toml
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:
```toml
# 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:

```shell
# 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