diff --git a/docs/index.adoc b/docs/index.adoc index 2e24c9ca..c520796a 100644 --- a/docs/index.adoc +++ b/docs/index.adoc @@ -4,7 +4,7 @@ layout: docs-adoc menu: overview --- -> *RESTHeart is a modern, JVM/GraalVM based, platform for building cloud-native HTTP microservices* +> *RESTHeart is a modern, JVM and 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. @@ -29,9 +29,9 @@ Save time and effort with RESTHeart's pre-configured APIs, covering a broad rang == 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. +*RESTHeart* is a framework for building HTTP microservices comparable to others, like _Undertow_ (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. +However, RESTHeart does not only comprise a framework but also a set of application-level features that allow developers to build their applications without the need to reinvent the wheel. ++++
@@ -40,9 +40,9 @@ However RESTHeart does not only comprises a framework, but also a set of applica
++++ -`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`. +`restheart-core` is the foundation of the platform, the runtime process responsible for handling the core services, parsing the configuration, registering the plugins, enforcing the security policy, resolving dependency injections with the available `Providers`, routing 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`: +If you look at the RESTHeart installation directory structure, you will notice a directory called `plugins`: [source,bash] ---- @@ -54,18 +54,18 @@ plugins └── restheart-security.jar ---- -Those plugins implement application level functionalities that help building applications. +Those plugins implement application-level functionalities that help build 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. +A developer can easily deploy a custom plugin, by just adding it into the `plugins` directory. The plugin is just a JAR file, in the case of Java or Kotlin and a directory with its `package.json` file in the 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_. +RESTHeart is built for developers by developers and evolved by implementing dozens of real-world projects. -- 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. +- Only four, simple yet powerful building blocks: `Services`, `Providers` `Interceptors` and `Initializers`. +- Starts in 100~ milliseconds, 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*. @@ -96,27 +96,27 @@ export function handle(request, response) { } ---- -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*. +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: +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! +> Most applications just require this. Then you just run a stock RESTHeart. Really, no code! TIP: Check the link:/docs/try[demo Web Chat application]. It requires *zero* lines of backend code. == The perfect MongoDB’s companion -RESTHeart is the best API for MongoDB (and link:https://www.ferretdb.io[FerretDB], AWS DocumentDB and Azure CosmosDB) +RESTHeart is the best API for MongoDB any compatible database (like link:https://www.ferretdb.io[FerretDB], 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%. +- It exposes the 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 with Mobile Apps, Web Apps or Integration Middleware. +- The Instant Data API cuts development complexity and costs by up to 90%. ++++
@@ -129,7 +129,7 @@ RESTHeart is the best API for MongoDB (and link:https://www.ferretdb.io[FerretDB *Hundreds of thousands TPS* -RESTHeart parallel architecture provides superior performances. +RESTHeart parallel architecture provides superior performance. link:/docs/performances[Read More] *Horizontal scaling* @@ -141,7 +141,7 @@ link:/docs/clustering[Read More] *Even faster on GraalVM* RESTHeart on GraalVM provides a -native solution with instant startup time and smaller memory footprint. +native solution with instant startup time and a smaller memory footprint. This is perfect when deploying to Kubernetes clusters, where regular Java applications usually consume too many resources. @@ -154,10 +154,9 @@ designed to radically simplify microservices development and deployment. - Available as a standalone JAR file, native binary or Docker image. - Deploy it on Cloud and On-Premises. -== Dual licensed +== Open-source and business-friendly licenses -RESTHeart is dual-licensed under the AGPL and a Business Friendly -Enterprise License +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 link:https://restheart.com[Read More]. +- Use 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 link:https://restheart.com[Read More].