Warning: the project is currently in the early stages of development and not yet suitable for production use-cases
Welcome to acme! This crate focuses on aggregating information from various sources and processing it in a secure, robust, and efficient manner. The project is designed to be modular and extensible, allowing for easy integration of new data sources and sinks.
This crate is one of the first extensions of the eryon framework, a Rust-based computational systems designed for high-performance data processing using topology with a hint of music-theory. The acme crate aims to provide a flexible and powerful platform for building data processing pipelines, leveraging the capabilities of the eryon framework.
engine: The core engine that orchestrates the data processing pipeline.core: Provides the foundational components and utilities for the ACME platform.
In addition to the core features of the crate and the various environmental features, the crate integrates with several external crates for enhanced functionality:
serde: Enables serialization and deserialization of data.tracing: Provides a framework for instrumenting Rust programs to collect structured, contextual, and async-aware diagnostics.tokio: An asynchronous runtime for the Rust programming language, enabling concurrent programming.
Before you start using acme, ensure you have the following prerequisites:
- Git for cloning the repository
- Rust installed on your machine. You can install it from rustup.rs.
- A compatible version of the Rust toolchain (preferably the latest stable version).
- Cargo for building and managing Rust projects.
- Optionally, install the cargo-binstall utility for streamlined installation of Rust binaries.
For more information on how to setup your environment, refer to the QUICKSTART guide.
Start by cloning the repository:
git clone https://github.com/FL03/acme.gitThen, navigate to the project directory:
cd acmeTo build the project, you can use the following command:
cargo build --all-features --workspace [--release]To run the tests, you can use the following command:
cargo test --all-features --workspaceAdd this to your Cargo.toml:
[dependencies.acme]
features = []
version = "0.4.0" use acme::engine::Engine;
fn main() -> Result<(), Box<dyn std::error::Error>> {
tracing_subscriber::fmt()
.with_line_number(false)
.with_max_level(tracing::Level::TRACE)
.with_thread_ids(false)
.with_target(true)
.compact()
.init();
// verify the tracing layers are initialized
tracing::info!("Welcome to {name}", name = acme);
// initialize a new instance of the engine
let acme = Engine::new()?;
// finish
Ok(())
}This project is licensed under the Apache-2.0.