finds.dev← search

// the find

steveklabnik/frappuccino

★ 353 · Ruby · MIT · updated Feb 2016

Functional Reactive Programming in Ruby.

A small FRP library for Ruby by Steve Klabnik, last touched in 2016. It lets you build event streams from plain Ruby objects by mixing in an emit method, then compose those streams with map, filter, scan, merge, and zip. Aimed at Rubyists curious about reactive patterns, not production event-processing pipelines.

The API is genuinely clean — wiring up a counter from button pushes in ~5 lines is the right kind of introductory demo. The test suite is thorough for the library's size, with a test file per operator. Using plain Ruby objects as event sources (just call emit) avoids any special base class requirement. The source is small enough (~400 lines across all files) that you can read the whole thing in an afternoon.

Abandoned since 2016 — no Ruby 3.x compatibility signals, Travis CI badge is dead, no releases in a decade. Synchronous and blocking: there's no async or scheduler support, so any real-time or concurrent use case falls apart immediately. No backpressure, no error propagation in streams — if an operator raises, the stream silently dies. The inject/scan distinction is muddled in the README and the naming drifts from standard FRP vocabulary (Bacon.js, RxRuby) in ways that will confuse anyone coming from another reactive library.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →