Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Smoldot light client library.
This library provides an easy way to create a light client.
This light client is opinionated towards certain aspects: what it downloads, how much memory and CPU it is willing to consume, etc.
Usage
Initialization
In order to use the light client, call [Client::new
], passing an implementation of the
[platform::PlatformRef
] trait. See the documentation of the [platform::PlatformRef
] trait
for more information.
The [Client
] contains two generic parameters:
- An implementation of the [
platform::PlatformRef
] trait. - An opaque user data. If you do not use this, you can simply use
()
.
When the std
feature of this library is enabled, the [platform::DefaultPlatform
] struct
can be used as an implementation of [platform::PlatformRef
].
For example:
use ;
let client = new;
# let _: = client; // Used in this example to infer the generic parameters of the Client
If the std
feature of this library is disabled, then you need to implement the
[platform::PlatformRef
] trait manually.
Adding a chain
After the client has been initialized, use [Client::add_chain
] to ask the client to connect
to said chain. See the documentation of [AddChainConfig
] for information about what to
provide.
[Client::add_chain
] returns a [ChainId
], which identifies the chain within the [Client
].
A [Client
] can be thought of as a collection of chain connections, each identified by their
[ChainId
], akin to a HashMap<ChainId, ...>
.
A chain can be removed at any time using [Client::remove_chain
]. This will cause the client
to stop all connections and clean up its internal services. The [ChainId
] is instantly
considered as invalid as soon as the method is called.
JSON-RPC requests and responses
Once a chain has been added, one can send JSON-RPC requests using [Client::json_rpc_request
].
The request parameter of this function must be a JSON-RPC request in its text form. For
example: {"id":53,"jsonrpc":"2.0","method":"system_name","params":[]}
.
Calling [Client::json_rpc_request
] queues the request in the internals of the client. Later,
the client will process it.
Responses can be pulled by calling the [AddChainSuccess::json_rpc_responses
] that is returned
after a chain has been added.