#miden #rollup #client

no-std miden-client

Client library that facilitates interaction with the Miden rollup

13 releases (7 breaking)

Uses new Rust 2024

new 0.8.0 Mar 29, 2025
0.7.0 Jan 28, 2025
0.6.1 Nov 21, 2024
0.4.1 Jul 8, 2024
0.1.0 Mar 15, 2024

#8 in #rollup

Download history 27/week @ 2024-12-04 34/week @ 2024-12-11 4/week @ 2024-12-18 121/week @ 2025-01-29 7/week @ 2025-02-05 135/week @ 2025-02-12 5/week @ 2025-02-19 33/week @ 2025-02-26 165/week @ 2025-03-05 33/week @ 2025-03-12 5/week @ 2025-03-19

237 downloads per month
Used in 7 crates

MIT license

1MB
16K SLoC

Rust Client Library

Rust library, which can be used by other project to programmatically interact with the Miden rollup.

Adding miden-client as a dependency

In order to utilize the miden-client library, you can add the dependency to your project's Cargo.toml file:

miden-client = { version = "0.8" }

Crate Features

Features Description
concurrent Used to enable concurrency during execution and proof generation. Disabled by default.
idxdb Includes WebStore, an IndexedDB implementation of the Store trait. Disabled by default.
sqlite Includes SqliteStore, a SQLite implementation of the Store trait. This relies on the standard library. Disabled by default.
tonic Includes TonicRpcClient, a std-compatible Tonic client to communicate with Miden node. This relies on the tonic for the inner transport. Disabled by default.
web-tonic Includes TonicRpcClient, a wasm-compatible Tonic client to communicate with the Miden node. This relies on tonic-web-wasm-client for the inner transport. Disabled by default.
testing Enables functions meant to be used in testing environments. Disabled by default.

Features sqlite and idxdb are mutually exclusive, the same goes for tonic and web-tonic.

Store and RpcClient implementations

The library user can provide their own implementations of Store and RpcClient traits, which can be used as components of Client, though it is not necessary. The Store trait is used to persist the state of the client, while the RpcClient trait is used to communicate via gRPC with the Miden node.

The sqlite and tonic features provide implementations for these traits using Rusqlite and Tonic respectively. The idxdb and web-tonic features provide implementations based on IndexedDB and tonic-web which can be used in the browser.

License

This project is MIT licensed.

Dependencies

~29–67MB
~1M SLoC