A simplistic Erlang REST framework built on top of mochiweb with composable routing and middleware support.
Rooster is an Erlang REST framework that simplifies building web APIs by providing composable routing, middleware support, and built-in authentication. It runs on top of mochiweb and handles HTTP verbs, request/response interception, and HTTPS configuration. The framework solves the problem of creating structured REST services in Erlang with minimal overhead.
Erlang developers building RESTful web APIs or microservices who want a lightweight, composable framework without the complexity of larger solutions.
Developers choose Rooster for its simplicity, direct integration with mochiweb, and pragmatic feature set focused on routing and middleware. It offers a clean, minimalistic alternative to heavier Erlang web frameworks while providing essential REST capabilities.
Erlang REST framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports GET, POST, PUT, DELETE with both generic and nested route definitions, allowing flexible API structure as shown in the exports examples.
Provides enter and leave functions for intercepting requests and responses, enabling easy implementation of cross-cutting concerns like CORS and authentication.
Includes a basic authentication module that integrates seamlessly with middleware, simplifying secure endpoint setup.
Allows SSL/TLS configuration with certificate options for secure connections, as detailed in the SSL section.
Runs on mochiweb with minimal dependencies (jsx for JSON), reducing overhead and aligning with Erlang's pragmatic nature.
Lacks advanced web features like WebSocket support, session handling, or built-in database connectors, which may require additional libraries.
Relies on a narrow set of dependencies, so it has fewer third-party plugins and community resources compared to larger frameworks.
Requires configuration with rebar3 and Erlang shell commands, which can be less intuitive for developers accustomed to more automated setups.
The README is concise and may not cover all edge cases, potentially making it challenging for complex implementations without external resources.