arcon

Crates.ioarcon
lib.rsarcon
version0.2.1
sourcesrc
created_at2019-07-16 11:32:50.659492
updated_at2022-03-04 15:20:57.391581
descriptionA runtime for writing streaming applications
homepagehttps://github.com/cda-group/arcon
repositoryhttps://github.com/cda-group/arcon
max_upload_size
id149377
size487,287
Adam Hasselberg (adamhass)

documentation

README

Arcon

Arcon is a library for building state-first streaming applications in Rust.

ci Cargo Documentation project chat License

Project Status

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

The APIs may break and you should not be running Arcon with important data!

Rust Version

Arcon builds against the latest stable release and the current MSRV is 1.56.1

Roadmap

See the roadmap here

Highlights

  • Out-of-order Processing
  • Event-time & Watermarks
  • Epoch Snapshotting for Exactly-once Processing
  • Hybrid Row(Protobuf) / Columnar (Arrow) System
  • Modular State Backend Abstraction

Example

#[arcon::app]
fn main() {
    (0..100u64)
        .to_stream(|conf| conf.set_arcon_time(ArconTime::Process))
        .filter(|x| *x > 50)
        .map(|x| x * 10)
        .print()
}

More examples can be found here.

Project Layout

Contributing

See Contributing

Community

Arcon is an ambitious project with many different development & research areas.

If you find Arcon interesting and want to learn more, then join the Zulip community!

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.

Commit count: 203

cargo fmt