A lightweight Scala framework for building REST services using battle-tested JVM libraries.
Chaos is a lightweight framework for building REST services in Scala. It solves the problem of Java frameworks being cumbersome to use from Scala while avoiding the unnecessary baggage of full-stack web frameworks. By gluing together battle-tested JVM libraries like Jersey, Jetty, and Jackson, it provides a focused foundation for REST API development.
Scala developers building RESTful microservices or web APIs who want a lightweight, Scala-friendly alternative to Java frameworks like Dropwizard or comprehensive frameworks like Play.
Developers choose Chaos because it does one thing well—REST services—without reinventing the wheel. It feels natural in Scala, integrates proven libraries, and avoids the overhead of larger frameworks while providing essential features like metrics, health checks, and JSON support.
A lightweight framework for writing REST services in Scala.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Chaos glues together battle-tested JVM libraries like Jersey, Guava, and Jackson, ensuring reliability and leveraging extensive community support, as emphasized in the design goals.
Specifically designed for REST services, it avoids the unnecessary baggage of full-stack frameworks like Play!, making it ideal for microservices with minimal overhead.
Addresses the clumsiness of using Java frameworks from Scala, providing a more natural experience, as noted in the comparison to Dropwizard and Twitter Commons.
Offers ready-to-use endpoints for health checks (/ping), metrics (/metrics), and runtime log configuration (/logging), simplifying monitoring and maintenance.
Relies on Java libraries like Jersey 1.17.1, which may not fully leverage Scala's functional programming paradigms and can feel alien to developers preferring native Scala solutions.
Missing advanced features such as WebSockets, GraphQL support, or built-in database access, requiring additional integrations that other frameworks provide natively.
Requires adding Mesosphere's Maven repository to build files, adding an extra setup step and potential dependency management issues compared to central repositories.
With version 0.5.2 and reliance on older library versions, the project may have limited active development, posing risks for long-term maintenance and updates.
Chaos is an open-source alternative to the following products:
Play Framework is a high-velocity web framework for Java and Scala that enables rapid development of scalable web applications with a reactive, non-blocking architecture.
A Java framework for developing high-performance RESTful web services with embedded Jetty server, Jersey for REST, and Jackson for JSON.