Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Erlang
  3. rooster

rooster

MITErlangv0.1.1

A simplistic Erlang REST framework built on top of mochiweb with composable routing and middleware support.

GitHubGitHub
171 stars8 forks0 contributors

What is rooster?

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.

Target Audience

Erlang developers building RESTful web APIs or microservices who want a lightweight, composable framework without the complexity of larger solutions.

Value Proposition

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.

Overview

Erlang REST framework

Use Cases

Best For

  • Building lightweight REST APIs in Erlang
  • Creating microservices with composable routing
  • Adding middleware for cross-cutting concerns like CORS or authentication
  • Prototyping web services quickly with minimal setup
  • Self-hosting secure APIs with HTTPS support
  • Integrating JSON parsing and basic authentication in Erlang applications

Not Ideal For

  • Applications requiring real-time features like WebSockets or server-sent events, as Rooster is focused solely on REST APIs.
  • Projects that need extensive built-in functionality such as database ORM, session management, or advanced templating.
  • Teams seeking a framework with a large community, extensive plugins, and comprehensive documentation for rapid development.
  • Web applications that require server-side HTML rendering, since Rooster is designed for API endpoints.

Pros & Cons

Pros

Composable Routing

Supports GET, POST, PUT, DELETE with both generic and nested route definitions, allowing flexible API structure as shown in the exports examples.

Middleware System

Provides enter and leave functions for intercepting requests and responses, enabling easy implementation of cross-cutting concerns like CORS and authentication.

Built-in Authentication

Includes a basic authentication module that integrates seamlessly with middleware, simplifying secure endpoint setup.

HTTPS Support

Allows SSL/TLS configuration with certificate options for secure connections, as detailed in the SSL section.

Lightweight and Minimal

Runs on mochiweb with minimal dependencies (jsx for JSON), reducing overhead and aligning with Erlang's pragmatic nature.

Cons

Limited Feature Set

Lacks advanced web features like WebSocket support, session handling, or built-in database connectors, which may require additional libraries.

Small Ecosystem

Relies on a narrow set of dependencies, so it has fewer third-party plugins and community resources compared to larger frameworks.

Manual Setup Required

Requires configuration with rebar3 and Erlang shell commands, which can be less intuitive for developers accustomed to more automated setups.

Sparse Documentation

The README is concise and may not cover all edge cases, potentially making it challenging for complex implementations without external resources.

Frequently Asked Questions

Quick Stats

Stars171
Forks8
Contributors0
Open Issues1
Last commit8 years ago
CreatedSince 2017

Tags

#authentication#rest-api#mochiweb#server#web-framework#erlang#https#json-parsing#middleware#routing

Built With

J
JSX
E
Erlang
r
rebar3
m
mochiweb

Included in

Erlang1.7k
Auto-fetched 19 hours ago

Related Projects

leptusleptus

The Erlang REST framework

Stars346
Forks47
Last commit5 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub