3 stable releases

3.0.1 Nov 14, 2022
3.0.0 Nov 10, 2022
2.0.1 Sep 2, 2021
1.0.1 Jan 4, 2021

#1328 in Web programming

MIT/Apache

1MB
20K SLoC

Catenis API Client for Rust

This library is used to make it easier to access the Catenis API services from code written in the Rust programming language.

Note: this release of the library targets version 0.12 of the Catenis API.

Documentation

The complete library documentation can be found here.

Usage

To start using the library, one needs to instantiate a new CatenisClient object. Then, to make a call to an API method, just call the corresponding method on the client object.

Example

use catenis_api_client::{
    CatenisClient, ClientOptions, Environment, Result,
};

// Instantiate Catenis API client object
let mut ctn_client = CatenisClient::new_with_options(
    Some((
        "drc3XdxNtzoucpw9xiRp",
        concat!(
            "4c1749c8e86f65e0a73e5fb19f2aa9e74a716bc22d7956bf3072b4bc3fbfe2a0",
            "d138ad0d4bcfee251e4e5f54d6e92b8fd4eb36958a7aeaeeb51e8d2fcc4552c3"
        ),
    ).into()),
    &[
        ClientOptions::Environment(Environment::Sandbox),
    ],
)?;

// Call Read Message API method
let result = ctn_client.read_message("o3muoTnnD6cXYyarYY38", None)?;

println!("Read message result: {:?}", result);

Notification

The library also makes it easy for receiving notifications from the Catenis system through its WsNotifyChannel data structure, which embeds a WebSocket client.

Asynchronous processing

The library allows for asynchronous processing using the Tokio runtime.

To activate asynchronous processing, the async feature must be enabled.

catenis_api_client = { version = "3.0", features = ["async"] }

The asynchronous version of the client can then be accessed from the async_impl module.

Example

use catenis_api_client::{
    async_impl,
    ClientOptions, Environment, Result,
};

// Instantiate asynchronous Catenis API client object
let mut ctn_client = async_impl::CatenisClient::new_with_options(
    Some((
        "drc3XdxNtzoucpw9xiRp",
        concat!(
            "4c1749c8e86f65e0a73e5fb19f2aa9e74a716bc22d7956bf3072b4bc3fbfe2a0",
            "d138ad0d4bcfee251e4e5f54d6e92b8fd4eb36958a7aeaeeb51e8d2fcc4552c3"
        ),
    ).into()),
    &[
        ClientOptions::Environment(Environment::Sandbox),
    ],
)?;

Catenis API Documentation

For further information on the Catenis API, please reference the Catenis API Documentation.

License

This library is distributed under the terms of both the MIT License and the Apache License (Version 2.0).

Copyright © 2021-2022, Blockchain of Things Inc.

Dependencies

~9–25MB
~384K SLoC