/arcon

Primary LanguageRustApache License 2.0Apache-2.0

Arcon

A runtime for writing real-time analytics applications in the Rust programming language.

ci License

Project Status

Arcon is in development and should be considered experimental until further notice.

Rust Version

Arcon builds against the latest stable release and the current MSRV is 1.53.0.

Roadmap

See the roadmap here

Highlights

  • Arrow-native
  • Hybrid Row(Protobuf) / Columnar (Arrow) System
  • Dynamic & Scalable Middleware
  • Flexible State Management
    • Backend per Operator (e.g., RocksDB, Sled)
    • Eager and Lazy state indexes

Vision

Example

use arcon::prelude::*;

fn main() {
    let mut app = Application::default()
        .iterator(0u64..100, |conf| {
            conf.set_arcon_time(ArconTime::Event);
            conf.set_timestamp_extractor(|x: &u64| *x);
        })
        .filter(|x| *x > 50)
        .to_console()
        .build();

    app.start();
    app.await_termination();
}

More examples can be found here.

Project Layout

Acknowledgements

Arcon is influenced by many great projects whether it is implementation, code practices or project structure:

License

This project is licensed under the Apache-2.0 license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Arcon by you shall be licensed as Apache-2.0, without any additional terms or conditions.