Description
RESTX is a full lightweight disrupting stack, which includes Swagger-like ui & considers REST specs tests as docs.
It shares similarities with modern frameworks like Play! like hot compile and a very productive experience, but focused on REST and pure Java.
It's licensed under the very commercial friendly Apache License 2, and is actively maintained by a community of developers.
You can get more details from the web site at http://restx.io/
Here you will find the build instructions if you want to build RESTX yourself, and why not contribute to the project.
RestX alternatives and similar libraries
Based on the "REST Frameworks" category.
Alternatively, view RestX alternatives based on common mentions on social networks and blogs.
-
Spark
A simple expressive web framework for java. Spark has a kotlin DSL https://github.com/perwendel/spark-kotlin -
rest.li
Rest.li is a REST+JSON framework for building robust, scalable service architectures using dynamic discovery and simple asynchronous APIs. -
RestExpress
Minimalist Java framework for rapidly creating scalable, containerless, RESTful microservices. Ship a production-quality, headless, RESTful API in the shortest time possible. Uses Netty for HTTP, Jackson for JSON, Metrics for metrics, properties files for configuration. Sub-projects and plugins enable, NoSQL, Swagger, Auth0, HAL integration, etc. -
Microserver
Microserver is a Java 8 native, zero configuration, standards based, battle hardened library to run Java Rest Microservices via a standard Java main class. Supporting pure Microservice or Micro-monolith styles. -
Hexagon
Hexagon is a microservices toolkit written in Kotlin. Its purpose is to ease the building of services (Web applications or APIs) that run inside a cloud platform. -
StubbornJava
Unconventional Java code for building web servers / services without a framework. Think dropwizard but as a seed project instead of a framework. If this project had a theme it would be break the rules but be mindful of your decisions. -
Restler
Restler is a library that automatically generates a client for a web service at run time, by analyzing the respective annotated Spring controller interface
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of RestX or a related project?
Popular Comparisons
README
RESTX - the lightweight Java REST framework
RESTX is a full lightweight disrupting stack, which includes Swagger-like ui & considers REST specs tests as docs.
It shares similarities with modern frameworks like Play! like hot compile and a very productive experience, but focused on REST and pure Java.
It's licensed under the very commercial friendly Apache License 2, and is actively maintained by a community of developers.
You can get more details from the web site at http://restx.io/
Here you will find the build instructions if you want to build RESTX yourself, and why not contribute to the project.
Build
RESTX requires Java 7.
You can build it using either Maven 2+ or EasyAnt.
With Maven:
mvn install
With EasyAnt:
easyant test package
Changing dependencies
The sources for module descriptors are the md.restx.json
files located in each module, and the restx.build.properties
for the dependencies version.
Maven poms and EasyAnt Ivy files are generated from these files using restx build generate pom + build generate ivy
.
Project organisation
RESTX is decomposed in a set of modules, each one following the traditional Java project layout (main sources in src/main
, test sources in src/test
).
The main modules are restx-core
and restx-factory
.
Here is a brief summary of each module:
Main modules:
restx-common
: Some shared utilities, only few ones, relying on Guava we already get a lot of nice utilities from there.restx-factory
: RESTX Dependency Injection (DI) container. Brought as transitive dependency from restx-core.restx-classloader
: Hot reload / hot compile supportrestx-apidocs-doclet
: Some javadoc doclets used when generating apidocsrestx-core
: Core module, includes the REST framework, base security, JSON support, ...
By relying on restx-core
module, every modules described above will be retrieved as transitive dependencies
restx-core-annotation-processor
: Annotation processing to generate routers based on RESTX core annotations. Needed at compile/build time only.
Optional dependencies providing specific features
restx-i18n
: I18n Supportrestx-security-basic
: A basic implementation of security, still enough in many cases but you can remove it at willrestx-core-java8
: Java 8 support (like Optional) for restxrestx-specs-tests
: Enables using RESTX specs as JUnit tests.restx-specs-tests-java8
: Support for java 8 time API during specs testsrestx-specs-server
: Enables using RESTX specs as HTTP mocks (running a server serving spec files responses given spec files requests).restx-factory-testing
: A module dedicated to testrestx-factory
features involving annotation processing.restx-validation
: Bean validation support (based onhibernate-validator
implementation) for POJOs BODY parametersrestx-webjars
: Webjars support through urls like/@/webjars/*
MongoDB support through Jongo API:
restx-jongo
: Main MongoDB support through Jongo API.restx-jongo-specs-tests
: Support of Jongo in your specs (recording and running).
Admin console modules (these are not required modules and are intended only for administration/monitoring) :
restx-admin
: The pluggable RESTX admin web console.restx-apidocs
: The famous API Docs web console, as a plugin forrestx-admin
.restx-monitor-admin
: Poor's man app monitoring web console, plugin forrestx-admin
.restx-factory-admin
: RESTX Factory admin console, plugin forrestx-admin
.restx-log-admin
: Easy configuration of logback logging from admin console, plugin forrestx-admin
.restx-specs-admin
: RESTX Specs recording and running web console, plugin forrestx-admin
.restx-i18n-admin
: Easy setting of your i18n translations from the web console, plugin forrestx-admin
.restx-stats-admin
: Used to collect stats as explained here
Servers support:
restx-servlet
: Servlet 2.5+ adapter for RESTX, allowing to embed RESTX in any servlet 2.5+ container.restx-server-jetty8
: Embedded Jetty 8 support.restx-server-tomcat
: Embedded Tomcat support.restx-server-simple
: SimpleFramework adapter for RESTX, this is the lightest and fastest solution.restx-server-testing
: JUnit tests for all the supported embedded servers.
restx-server-*
are needed only if you want to be able to run restx as a standalone app rather than deploying it
If you want to deploy in a web server, you will restx-servlet
Metrics:
restx-monitor-codahale
: Codahale metrics for monitor module. Not compatible with Google App Engine.
Others:
restx-samplest
: both a sample of individual features and JUnit tests of themrestx-samplest-java8
: Same asrestx-samplest
but for demo-ing restx java8 supportrestx-annotation-processors-package
: assembly module for annotation processor only, if you prefer to setup annotation processing manually with-proc
javac optionrestx-barbarywatch
: MacOSX filesystem watching that actually works. Only module with GPL license, but no other module depend on it, it's detected at runtime, and used only during development
Contributing
Contributions are welcome, fork the repo, push your changes to a branch and send a Pull Request.
To be sure the PR will be merged please discuss it on the google group before, or create an issue on GitHub to initiate the discussion.
*Note that all licence references and agreements mentioned in the RestX README section above
are relevant to that project's source code only.