// the find
samber/ro
🏎️ Streams & Reactive Programming paradigm for Go: declarative and composable API for event-driven applications
ro is a ReactiveX-style library for Go built on generics — Observables, Observers, and composable operators (Pipe, Map, Filter, etc.) for event-driven and streaming workloads. It's from the same author as lo/do/mo, and is pitched specifically for infinite/async streams rather than the finite-slice helpers lo covers.
The plugin ecosystem is unusually wide for a reactive library — HTTP, cron, fsnotify, websockets, and logging adapters for zap/zerolog/logrus/slog/sentry are all first-class, so you're not stuck writing your own bridge code. The core module depends on nothing but the Go standard library, which matters for anyone wary of dependency bloat in a streaming/event layer. CI is taken seriously: separate lint, security, and test workflows plus codecov and dependabot automerge, not just a single green checkmark. Coming from samber (lo, do, mo) means there's a track record of API design that gets maintained rather than abandoned.
Still v0 with an explicit warning that exported APIs can break before 1.0 — not something to wire into a production event pipeline yet. 689 stars is thin compared to the author's other projects (lo has tens of thousands), so this hasn't had much real-world battle testing, and Rx-style reactive programming is a harder sell in Go specifically because channels and goroutines already cover a lot of the same ground natively. The repo bundles an `ee/` directory under a separate commercial license inside an otherwise Apache 2.0 project — fine if you know it's there, but a trap if you clone the whole repo without reading the fine print.