A Rack application and JavaScript library for building real-time web applications with HTTP pub-sub in Ruby.
Firehose is a real-time web application framework that provides an HTTP-based pub-sub system for Ruby and JavaScript. It allows servers to push updates to clients via simple RESTful endpoints, solving the need for low-latency server-to-client communication without requiring complex WebSocket setups.
Ruby developers building real-time features like live notifications, chat, or collaborative editing into web applications, especially those preferring HTTP simplicity over WebSocket abstractions.
Developers choose Firehose for its clean, RESTful design, ease of integration with existing Ruby stacks, and reliability across browsers—including older ones—via HTTP long-polling fallbacks.
Build realtime Ruby web applications. Created by the fine folks at Poll Everywhere.
Uses RESTful PUT and long-polling for pub-sub, making it easy to integrate with existing web apps without complex WebSocket setups, as shown in the curl examples.
Supports HTTP long-polling as a fallback for older browsers, ensuring real-time updates work reliably even without WebSocket support, per the philosophy section.
Provides a Ruby client with configurable publishing options like TTL and buffer size, seamless for Ruby developers, as detailed in the Ruby Publisher section.
Allows custom server-side filters for authentication and message transformation, enabling fine-grained control, with examples in the Custom MessageFilters section.
Requires Redis 2.6+ with Lua support, adding infrastructure complexity and a potential single point of failure, as stated in the Getting Started section.
Focuses on JavaScript and Ruby clients; other languages need custom HTTP implementations, which can hinder polyglot teams, implied by the lack of other SDKs.
Recommends deploying as a separate Rack app with tools like Capistrano, increasing operational setup compared to integrated solutions, per the Deployment section.
Firehose is an open-source alternative to the following products:
Build reactive applications with the Rails tooling you already know and love.
Open Pusher implementation compatible with Pusher libraries
Use simple commands on the server to control client browsers in real-time
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.