Arcon
A runtime for writing streaming applications with the Rust programming language.
Project Status
Arcon is in development and should be considered experimental until further notice.
Rust Version
Arcon currently requires Rust nightly (See current toolchain here).
User Guide
More detailed information about Arcon can be found here
Example
use arcon::prelude::*;
fn main() {
let mut pipeline = Pipeline::default()
.collection((0..100).collect::<Vec<u64>>(), |conf| {
conf.set_arcon_time(ArconTime::Event);
conf.set_timestamp_extractor(|x: &u64| *x);
})
.operator(OperatorBuilder {
constructor: Arc::new(|_| Filter::new(|x| *x > 50)),
conf: Default::default(),
})
.to_console()
.build();
pipeline.start();
pipeline.await_termination();
}
More advanced examples can be found here.
Project Layout
arcon_allocator
: Custom allocator.arcon_build
: Protobuf builderarcon_error
: Common error utilities.arcon_macros
: Arcon derive macros.arcon_shell
: Explore a live Arcon applicationarcon_state
: State management features.arcon_tests
: Integration testsarcon_tui
: Text-based dashboard.
License
This project is licensed under the AGPL-3.0 license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Arcon by you shall be licensed as AGPL-3.0, without any additional terms or conditions.