25 stable releases

new 2.22.0 Apr 15, 2025
2.21.0 Apr 9, 2025
2.20.5 Mar 27, 2025
2.19.12 Jan 24, 2025
2.19.9 Dec 31, 2024

#434 in Concurrency

Download history 29/week @ 2024-12-24 417/week @ 2024-12-31 769/week @ 2025-01-07 926/week @ 2025-01-14 775/week @ 2025-01-21 304/week @ 2025-01-28 388/week @ 2025-02-04 305/week @ 2025-02-11 292/week @ 2025-02-18 255/week @ 2025-02-25 351/week @ 2025-03-04 225/week @ 2025-03-11 767/week @ 2025-03-18 492/week @ 2025-03-25 809/week @ 2025-04-01 760/week @ 2025-04-08

2,854 downloads per month

Apache-2.0

445KB
9K SLoC

Rust 5.5K SLoC // 0.0% comments Python 4K SLoC // 0.3% comments Shell 29 SLoC // 0.1% comments INI 18 SLoC

Arroyo

Arroyo is a library to build streaming applications that consume from and produce to Kafka.

Arroyo consists of three components:

  • Consumer and producer backends
    • The Kafka backend is a wrapper around the librdkafka client, and attempts to simplify rebalancing and offset management even further
    • There is also an in memory and a file based consumer and producer implementation that can be used for testing
  • A strategy interface
    • Arroyo includes a number of pre-built strategies such as RunTask, Filter, Reduce, CommitOffsets and more.
    • Users can write their own strategies, though in most cases this should not be needed as the library aims to provide generic, reusable strategies that cover most stream processing use cases
    • Strategies can be chained together to form complex message processing pipelines.
  • A streaming engine which manages the relationship between the consumer and strategies
    • The StreamProcessor controls progress by the consumer and schedules work for execution by the strategies.

All documentation is in the docs directory. It is hosted at https://getsentry.github.io/arroyo/ and can be built locally by running make docs

Dependencies

~19–27MB
~344K SLoC