Crates.io | aldrin |
lib.rs | aldrin |
version | |
source | src |
created_at | 2020-02-14 19:19:15.870958 |
updated_at | 2025-01-26 14:31:21.611149 |
description | Message bus for service-oriented RPC and interprocess communication. |
homepage | |
repository | https://github.com/dennis-hamester/aldrin |
max_upload_size | |
id | 209179 |
Cargo.toml error: | TOML parse error at line 19, column 1 | 19 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Aldrin is a message bus for service-oriented RPC and general interprocess communication.
Aldrin busses are star-shaped: there is a cental component, called the broker, to which multiple clients can connect. These client can then publish services for other clients to use.
Services are described in a small DSL called Aldrin schema and are composed of functions and events. Schemata are then processed by a code generator, which can output both client and server-side code.
Here is a small toy example of an echo service:
service Echo {
uuid = 8920965f-110a-42ec-915c-2a65a3c47d1f;
version = 1;
fn echo @ 1 {
args = string;
ok = string;
err = enum {
EmptyString @ 1;
}
}
fn echo_all @ 2 {
args = string;
err = enum {
EmptyString @ 1;
}
}
event echoed_to_all @ 1 = string;
}
aldrin
: This is the main crate, aimed at writing both client and server applications.aldrin-broker
: Implements the broker-side of the protocol.aldrin-core
: Shared protocol primitives used by aldrin
and aldrin-broker
.aldrin-test
: Utilities for setting up unit tests of Aldrin services.aldrin-parser
: Parser library for Aldrin schemata.aldrin-codegen
: Implements client and server code generation from Aldrin schemata.aldrin-gen
: Standalone frontend to the parser and code generation.aldrin-macros
: Contains a macro for code generation at compile-time.