Crate linera_sdk

source ·
Expand description

This module provides an SDK for developing Linera applications using Rust.

A Linera application consists of two WebAssembly binaries: a contract and a service. Both binaries have access to the same application and chain specific storage. The service only has read-only access, while the contract can write to it. The storage should be used to store the application state, which is persisted across blocks. The state can be a custom type that uses linera-views, a framework that allows lazily loading selected parts of the state. This is useful if the application’s state is large and doesn’t need to be loaded in its entirety for every execution.

The contract binary should create a type to implement the Contract trait. The type can store the ContractRuntime and the state, and must have its implementation exported by using the contract! macro.

The service binary should create a type to implement the Service trait. The type can store the ServiceRuntime and the state, and must have its implementation exported by using the service! macro.

§Examples

The examples directory contains some example applications.

Re-exports§

Modules§

  • This module defines the notion of Application Binary Interface (ABI) for Linera applications across Wasm and native architectures.
  • Common ABIs that may have multiple implementations.
  • Types and macros useful for writing an application contract.
  • Support for Linera applications that interact with Ethereum or other EVM contracts.
  • GraphQL traits for generating interfaces into applications.
  • Types used when performing HTTP requests.
  • Types reexported from linera_base.
  • Types and macros useful for writing an application service.
  • Helper types for writing integration tests for WebAssembly applications.
  • Module with helper types and functions used by the SDK.
  • Helper types for using linera_views to store application state.

Macros§

  • Declares an implementation of the Contract trait, exporting it from the Wasm module.
  • A macro for asserting that a condition is true, returning an error if it is not.
  • Declares an implementation of the Service trait, exporting it from the Wasm module.

Structs§

Traits§

  • The contract interface of a Linera application.
  • Extension trait to deserialize a type from a vector of bytes using bcs.
  • The service interface of a Linera application.
  • Extension trait to serialize a type into a vector of bytes using bcs.