dotrain/lib.rs
1#![doc(
2 html_logo_url = "https://raw.githubusercontent.com/rainlanguage/rain.brand/main/Rainlang%20logo.svg",
3 html_favicon_url = "https://raw.githubusercontent.com/rainlanguage/rain.brand/main/Rainlang%20logo.svg"
4)]
5//! .rain to rainlang composer written in rust and made available for NodeJs and broswers through [wasm-bindgen](https://rustwasm.github.io/docs/wasm-bindgen/)
6//! in Typescript/Javascript.
7//! - Dotrain specs can be found [here](https://github.com/rainprotocol/specs/blob/main/dotrain.md)
8//! - Rainlang specs can be found [here](https://github.com/rainprotocol/specs/blob/main/rainlang.md)
9//!
10//! The primary goal of the Rain language is to make smart contract development accessible
11//! for as many people as possible. This is fundamentally grounded in our belief that accessibility
12//! is the difference between theoretical and practical decentralisation. There are many people
13//! who would like to participate in authoring and auditing crypto code but currently cannot.
14//! When someone wants/needs to do something but cannot, then they delegate to someone who can,
15//! this is by definition centralisation.
16//! Fast and easy queue abstraction.
17//!
18//! ## Features
19//!
20//! Includes 3 features:
21//! - `cli` A [mod@clap] based module (CLI app) for functionalities of this library, this features is required for building/installing the **binary**
22//! - `js-api` includes wrappers around main structs and functionalities to provide an API through [mod@wasm_bindgen]
23
24pub mod types;
25pub mod error;
26pub(crate) mod parser;
27pub(crate) mod composer;
28
29#[cfg(feature = "cli")]
30pub mod cli;
31
32#[cfg(feature = "js-api")]
33pub mod js_api;
34
35pub use rain_metadata::Store;
36pub use parser::*;
37/// Provides all types and functionalities of Rain metadata
38pub use rain_metadata;