This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
RESTHeart is a Java open source Low code micro-services Open Platform.
Original author(s) | Andrea Di Cesare |
---|---|
Developer(s) | Andrea Di Cesare, Maurizio Turatti |
Initial release | November 30, 2014[1] |
Stable release | 6.3.4[2]
/ May 24, 2022 |
Repository | |
Operating system | Cross-platform |
Available in | Java |
Type | Server (computing) |
License | Affero General Public License |
Website | restheart |
RESTHeart is dual licensed under the AGPL and a business friendly commercial license.[3]
As a framework for building HTTP micro-services is comparable to others, like Undertow (that is actually internally used by RESTHeart), Micronaut and Quarkus.
Its development framework allows implementing Services for request handling and Interceptors to snoop and modify requests and responses at different stages of the request lifecycle. It supports different programming languages, including Java, Kotlin, JavaScript and TypeScript leveraging the polyglot nature of the GraalVM virtual machine.
As a point of distinction between RESTHeart and other popular frameworks, it ships with application-level common features that makes it a Low Code Platform:
- A Data API for MongoDB (or any compatible database e.g. Percona Server for MongoDB, AWS DocumentDB and Azure Cosmos DB) that exposes the database resources through a comprehensive set of REST, GraphQL and WebSocket APIs.
- A Declarative Security implementation to manage Authorization and Authentication via configuration and Access-control list. Leveraging the same plugins mechanism for implementing Services and Interceptors, the security layer can be also adapted and customized.
Technical implementation
editRESTHeart it's fully implemented in Java and embeds Undertow, the high performance HTTP server which is one of the core components of the Wildfly Application Server.
RESTHeart inherits the same Undertow's pipeline architecture, where specialized handlers are chained together to serve the requests.
The module 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, route requests to the correct Services, executing Interceptors and Initializers.
The plugins implement general purposes functionalities and application logic and can be added via a file based deployment mechanism.[4]
RESTHeart supports the GraalVM[5] so it can be built as native image to better target containerized services. It's also available via Docker containers.[6]
References
edit- ^ "SoftInstigate - RESTHeart data API server open sourced". www.softinstigate.com.
- ^ "restheart: RESTHeart, Low code Microservices Open Platform". 20 June 2022 – via GitHub.
- ^ "RESTHeart seriously". restheart.com. Retrieved June 20, 2022.
- ^ "Packaging Plugins". restheart.org. Retrieved June 20, 2022.
- ^ "RESTHeart - GraalVM". v. Retrieved June 20, 2022.
- ^ "Docker Hub". hub.docker.com. Retrieved June 20, 2022.