A Cowboy handler and JavaScript library for persistent client-server connections with WebSocket fallback.
Bullet is a Cowboy handler and JavaScript library that facilitates persistent, bidirectional streaming connections between clients and servers. It abstracts transport protocols like WebSocket, EventSource, and XHR long-polling, automatically selecting the best available method and handling reconnections. This solves the problem of maintaining reliable real-time communication across varying client capabilities.
Erlang developers using the Cowboy web server who need to implement real-time features like live updates, notifications, or chat without managing low-level transport details.
Developers choose Bullet for its simplicity and reliability—it provides a unified interface for persistent connections, automatic transport fallback, and reconnection handling, reducing the complexity of building real-time features in Cowboy-based applications.
Simple, reliable, efficient streaming for Cowboy.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically uses WebSocket when possible and falls back to EventSource or XHR long-polling, ensuring compatibility across different client capabilities as described in the README.
Manages reconnections automatically when a connection is lost, providing reliability without manual intervention, which is highlighted in the README's feature list.
Provides a common API for both client and server, simplifying the handling of persistent connections and reducing development complexity, as noted in the README.
Includes an optional heartbeat mechanism managed on the client side to keep connections alive, enhancing stability, as explained in the README's client-side JavaScript section.
The project is no longer maintained or updated, posing significant risks for production use due to lack of support and security patches, as stated at the top of the README.
Requires jQuery for the client-side library, which is outdated for modern frontend stacks that prefer frameworks like React or Vue, limiting adoption in contemporary projects.
Tightly coupled with the Cowboy HTTP server, making it unsuitable for projects using other Erlang web servers or frameworks, as shown in the dispatch options in the README.