Skip to content
SPECIFICTION
Get listed

Faye

faye.jcoglan.com

Free plan Open source WebWindowsmacOSLinuxAPISelf-hosted
Visit faye.jcoglan.com
Spec score 8.8 #3 of 55 in WebSocket Tools

What it is

Faye is a publish-subscribe messaging system that uses the Bayeux protocol. It provides message servers for Node.js and Ruby, plus clients for servers and major web browsers. Browser clients rely on a Faye server to relay messages; they can retry after a lost connection and redeliver dropped messages. Transport adapters cover WebSocket, HTTP long-polling, Cross Origin Resource Sharing, and JSON-P callback-polling. Server and client extensions can intercept or modify messages, including to add subscription authentication. The monitoring API reports handshakes, subscriptions, unsubscriptions, publishes, and disconnections. Faye runs on Linux, macOS, and Windows, and can be self-hosted. Its default in-process engine cannot span multiple front-end web servers, but Redis and Couchbase engines are documented for distributed deployments. Faye is free and open source under the Apache 2.0 license; the listed plan is free. Install the Node.js server through npm or the Ruby server through RubyGems.

Spec sheet

What it does
Faye is a publish-subscribe messaging system based on the Bayeux protocol.Read 15 Oct 2026 · faye.jcoglan.com
Purpose
Faye is a publish-subscribe messaging system based on the Bayeux protocol.Read 4 Oct 2026 · faye.jcoglan.com
Integrations
The download instructions provide installation through npm for Node.js and RubyGems for Ruby.Read 4 Oct 2026 · faye.jcoglan.com
Security
Faye allows cross-domain access and unrestricted publishing and subscribing by default, so the documentation advises adding application-appropriate restrictions.Read 4 Oct 2026 · faye.jcoglan.com
License
Faye is open-source software released under the Apache 2.0 license.Read 15 Oct 2026 · faye.jcoglan.com
Maker
The site credits James Coglan as Faye’s maker.Read 4 Oct 2026 · faye.jcoglan.com
Additional backends
The engine documentation lists separate faye-redis, faye-redis-sharded and faye-couchbase backends.Read 15 Oct 2026 · faye.jcoglan.com
Browser connection model
Browser documentation recommends one Faye client per target server because browsers limit connections per host.Read 15 Oct 2026 · faye.jcoglan.com
Browser requirement
Browser clients require a Faye server to handle message delivery between clients.Read 4 Oct 2026 · faye.jcoglan.com
Channel subscriptions
Subscriptions support wildcard channel patterns and return cancellable subscription promises.Read 15 Oct 2026 · faye.jcoglan.com
Client recovery
The browser client periodically retries after a lost connection and can redeliver dropped messages.Read 4 Oct 2026 · faye.jcoglan.com
Client support
Clients can run on servers and in major web browsers.Read 15 Oct 2026 · faye.jcoglan.com
Clustering tradeoff
Redis-backed clustering enables scaling across front ends but adds external I/O and is slower than in-process storage.Read 15 Oct 2026 · faye.jcoglan.com
Credential handling
The security guide says server extensions should remove authorization credentials before messages are forwarded to subscribers.Read 15 Oct 2026 · faye.jcoglan.com
Cross-domain support
Faye clients and servers support cross-domain communication without extra configuration.Read 15 Oct 2026 · faye.jcoglan.com
Extensibility
User-written client and server extensions can intercept, modify or reject messages.Read 15 Oct 2026 · faye.jcoglan.com
Extensions
Server and client extensions can intercept and modify incoming or outgoing messages, including to implement subscription authentication.Read 4 Oct 2026 · faye.jcoglan.com
Independent activity limit
Ruby Toolbox rates faye-websocket 0.88 and flags low commit activity and no release in over a year.Read 15 Oct 2026 · ruby-toolbox.com
Independent maintenance limit
Snyk's analyzed snapshot labels maintenance inactive, with no commits in six months, 19 open issues, four open pull requests and one maintainer.Read 15 Oct 2026 · security.snyk.io
Independent popularity
Snyk reports about 1.7 million weekly npm downloads and roughly 4,385 GitHub stars for Faye.Read 15 Oct 2026 · security.snyk.io
Independent repository scale
GitHub shows the Faye organization repository with about 4.4k stars and 367 forks, plus separate Ruby and Node WebSocket repositories.Read 15 Oct 2026 · github.com
Independent security status
Snyk reports no known security issues for the package version it analyzed, while recording four historical vulnerabilities in older versions.Read 15 Oct 2026 · security.snyk.io
Latest release
The download page lists version 1.4.3, released 27 September 2026.Read 15 Oct 2026 · faye.jcoglan.com
License and release
The site lists version 1.4.2, released 14 September 2026, under the Apache 2.0 license.Read 4 Oct 2026 · faye.jcoglan.com
Limit: complexity and state
The same Stack Overflow discussion describes Faye as more complex than Juggernaut and notes that its then-current state was held in memory.Read 15 Oct 2026 · stackoverflow.com
Limit: historical TLS vulnerability
A Singapore government SingCERT bulletin says older faye-websocket and Faye Ruby clients lacked TLS certificate validation, with fixes released in faye-websocket 0.11.0 and Faye 1.4.0.Read 15 Oct 2026 · isomer-user-content.by.gov.sg
Limit: scope
A separate Stack Overflow discussion characterizes Faye as a web pub-sub layer rather than a general Redis-style storage system.Read 15 Oct 2026 · stackoverflow.com
Messaging transports
The adapters support WebSocket, HTTP long-polling, Cross Origin Resource Sharing, and JSON-P callback-polling.Read 4 Oct 2026 · faye.jcoglan.com
Monitoring
The monitoring API can report client handshakes, subscriptions, unsubscriptions, publishes, and disconnections.Read 4 Oct 2026 · faye.jcoglan.com
Monitoring caveat
In multi-process Redis deployments, monitoring events fire only in the process handling each event, so local subscriber counts can be inaccurate.Read 15 Oct 2026 · faye.jcoglan.com
News: 1.4.2 security
The 1.4.2 changelog entry says it mitigates a denial-of-service and potential message-stealing attack against the Node server.Read 15 Oct 2026 · github.com
News: 1.4.3
The 1.4.3 changelog entry fixes an unhandled rejection when a transport probe fails.Read 15 Oct 2026 · github.com
Node configuration
NodeAdapter accepts mount, timeout, engine and ping settings and attaches to an existing HTTP server.Read 15 Oct 2026 · faye.jcoglan.com
Node installation
The official installation command for Node.js and browser packaging is npm install faye.Read 15 Oct 2026 · faye.jcoglan.com
Notable browser limit
The documentation advises creating one client per target server because browsers impose per-host connection limits.Read 4 Oct 2026 · faye.jcoglan.com
Praise: extensibility
A Stack Overflow answer praises Faye's server and client extensions, wildcard routes and automatic reconnection for broad browser and phone compatibility.Read 15 Oct 2026 · stackoverflow.com
Publishing
Clients publish arbitrary JSON-serializable objects and receive confirmation that the server accepted and routed them.Read 15 Oct 2026 · faye.jcoglan.com
Reconnect behavior
The browser client can retry connections and redeliver messages after network errors.Read 15 Oct 2026 · faye.jcoglan.com
Ruby installation
The official Ruby installation command is gem install faye.Read 15 Oct 2026 · faye.jcoglan.com
Ruby runtime
The Ruby server runs on MRI and JRuby and the documentation requires at least Ruby 1.9.Read 15 Oct 2026 · faye.jcoglan.com
RubyGems ecosystem
RubyGems lists faye-websocket 0.12.0, 48 versions and 46,352,782 total downloads.Read 15 Oct 2026 · rubygems.org
RubyGems license
RubyGems identifies faye-websocket as Apache-2.0 and names James Coglan as its author.Read 15 Oct 2026 · rubygems.org
Scaling
The default in-process engine cannot run one Faye service across multiple front-end web servers; separate Redis and Couchbase engines are documented for distributed deployments.Read 4 Oct 2026 · faye.jcoglan.com
Security defaults
A new Faye server is cross-domain accessible and imposes no subscription or publication restrictions until extensions add them.Read 15 Oct 2026 · faye.jcoglan.com
Server and clients
It provides message servers for Node.js and Ruby and clients for servers and major web browsers.Read 4 Oct 2026 · faye.jcoglan.com
Server support
It provides message servers for Node.js and Ruby.Read 15 Oct 2026 · faye.jcoglan.com
Storage engines
The default memory engine keeps state in one process, while the Redis engine supports multiple server instances.Read 15 Oct 2026 · faye.jcoglan.com
Transport protocols
Adapters support WebSocket, HTTP long-polling, CORS and JSON-P callback-polling.Read 15 Oct 2026 · faye.jcoglan.com
Transport security
The security guide advises using HTTPS or WSS and securing Node, Thin or a fronting TLS terminator.Read 15 Oct 2026 · faye.jcoglan.com
WebSocket extensions
Node and Ruby adapters accept extensions compatible with the websocket-extensions framework, including permessage-deflate.Read 15 Oct 2026 · faye.jcoglan.com

Plans and prices

Faye Free Open-source software · Apache 2.0 license Read 4 Oct 2026 · faye.jcoglan.com

Every Faye plan and price →

Strong points and limits

Strong points

  • Message servers for Node.js and Ruby
  • Browser clients can retry and redeliver dropped messages
  • Multiple transport adapters are supported
  • Extensions can add subscription authentication
  • Free under the Apache 2.0 license

Limits

  • Browser clients require a Faye server
  • Default engine cannot span front-end servers
  • Cross-domain access and unrestricted messaging are defaults
  • Browsers impose per-host connection limits

Who it suits

Faye suits developers building Bayeux-based messaging between servers and browser clients. Teams needing to distribute service across multiple front-end servers can use the documented Redis or Couchbase engines.

Verdict

Faye provides a free messaging system with server and browser clients, several transports, and monitoring. Plan for connection limits and add application-appropriate access restrictions; the security guide also advises HTTPS.

Where Specifiction places it

Alternatives to FayeAll alternatives →