Get Started with RESTHeart v7
RESTHeart is a modern, JVM/GraalVM based, platform for building cloud-native HTTP microservices
Note
|
An HTTP microservice is a server-side, lightweight component that exposes an HTTP API. Clients interact with it only through HTTP requests, usually - but not exclusively - using JSON payloads, decoupling the client from the underlying technology and completely separating the presentation from the business logic. |
Experience Unmatched Speed and Simplicity with RESTHeart
RESTHeart is meticulously designed from the ground up to prioritize speed and simplicity. Built using carefully selected, best-of-breed libraries, it embodies a framework that ensures developers a seamless experience.
Our Philosophy: Empowering Developers, Simplifying Applications
At RESTHeart, we believe in providing developers with a delightful framework that combines essential features required by any application. This unique approach makes RESTHeart a true low code platform, equipping developers with pre-built, customizable APIs that are ready to use.
Unlock Your Potential with Ready-to-Use, Extensible APIs
Save valuable development time and effort with RESTHeart’s comprehensive set of pre-configured APIs. Our platform offers a wide range of functionality, ensuring you have all the tools you need at your disposal. Plus, our APIs are highly extensible, allowing you to tailor them to suit your specific application requirements.
Experience the power of RESTHeart as it revolutionizes your development process. Enjoy a platform that empowers developers and simplifies applications, all while providing the speed and simplicity you desire.

RESTHeart features set
What makes RESTHeart different from other frameworks?
RESTHeart is a framework for building HTTP microservices comparable to others, like Undertow (that is actually internally used by RESTHeart), Vert.x, Quarkus, Spring Boot, Node.js, etc.
However RESTHeart does not only comprises a framework, but also a set of application level features that allow developers to build their applications without the need to reinvent the wheel.

RESTHeart modular architecture
restheart-core
is the foundation of the platform, the runtime process responsible for handling the core services, parsing the configuration, registering the plugins, enforce the security policy, resolve dependency injections with the available Providers
, route requests to the correct Services
, executing Interceptors
and Initializers
.
If you look at the restheart installation directory structure, you will notice a directory called plugins
:
plugins
├── restheart-graphql.jar
├── restheart-mongoclient-provider.jar
├── restheart-mongodb.jar
├── restheart-polyglot.jar
└── restheart-security.jar
Those plugins implement application level functionalities that help building applications.
For instance, the plugin restheart-mongodb
implements the REST API for MongoDB and restheart-security.jar
implements the ready-to-use Authentication and Authorization features.
A developer can easily deploy a custom plugin, by just adding it into the plugins
directory. The plugin is just a JAR file, in case of Java or Kotlin and a directory with its package.json
file in case of JavaScript.
Built for developers
RESTHeart is built for developers by developers and evolved by implementing dozens of real world projects and following one golden rule: if it is complex, it is wrong.
-
Only four, simple yet powerful building blocks:
Services
,Providers
Intreceptors
andInitializers
. -
Starts in 100~ msecs, so code-deploy-test cycles are smooth and fast.
-
Each request is handled in a dedicated thread, so all code is thread-safe, simple to write and maintain and scales well.
-
Powerful Dependency Injection via
@Inject
annotation andProvider
plugin. -
The framework is polyglot and supports Java, Kotlin, JavaScript and Typescript.
-
Well documented with many examples and tutorials available. Check plugin examples.
Here you have the Hello World example in Java:
@RegisterPlugin(name = "greetings", description = "just another Hello World")
public class GreeterService implements JsonService {
@Override
public void handle(JsonRequest request, JsonResponse response) {
response.setContent(object().put("message", "Hello World!"));
}
}
And the same in Javascript
export const options = { name: "greetings", description: "just another Hello World" }
export function handle(request, response) {
response.setContent(JSON.stringify({ msg: 'Hello World' }));
response.setContentTypeAsJson();
}
Note
|
Javascript is executed in a thread safe, multi-threading concurrency environment. So you don’t need to deal with async/await, promises, observable or any other fancy stuff. Just clean and simple code. |
Features
RESTHeart provides developers with the features required by most applications: authentication/authorization and data management:
-
Declarative Authentication and Authorization.
-
Instant REST, GraphQL and WebSocket API for MongoDB.
-
SDK to easily develop custom features.
Note
|
Most applications just require this. Then you just run a stock RESTHeart. Really, no code! |
Tip
|
Check the demo Web Chat application. It requires zero lines of backend code. |
The perfect MongoDB’s companion
RESTHeart is the best API for MongoDB (and AWS DocumentDB and Azure CosmosDB)
-
It exposes full database’s capabilities via REST, GraphQL and WebSocket APIs.
-
Developers don’t need to write a single line of backend code to handle data and wit Mobile Apps, Web Apps or Integration Middleware.
-
The Instant Data API cuts development complexity and costs up to 90%.

MongoDB features supported by RESTHeart
Extreme Performances
Hundreds of thousands TPS
RESTHeart parallel architecture provides superior performances. Read More
Horizontal scaling
RESTHeart is fully stateless and allows clustering, to reach demanding requirements. Read More
Even faster on GraalVM
RESTHeart on GraalVM provides a native solution with instant startup time and smaller memory footprint. This is perfect when deploying to Kubernetes clusters, where regular Java applications usually consume too many resources.
Deploy at rest
RESTHeart is tailored for the JVM, GraalVM, Docker or Kubernetes, designed to radically simplify microservices development and deployment.
-
Ready-to-run Runtime.
-
Available as a standalone JAR file, native binary or Docker image.
-
Deploy it on Cloud and On-Premises.
Dual licensed
RESTHeart is dual-licensed under the AGPL and a Business Friendly Enterprise License
-
Enjoy the free AGPL distribution without feature restrictions.
-
Rely on the Enterprise License for production-grade support and to use RESTHeart in closed source products or services Read More.