Looking for Cloud Services or Professional Support? Check restheart.com

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 and Initializers.

  • 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 and Provider 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.