///////////////////////////////////////////////////////////////////////////////

    Copyright (c) 2019, 2020 Oracle and/or its affiliates.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

///////////////////////////////////////////////////////////////////////////////

= Helidon SE
:description: Helidon SE Introduction
:keywords: helidon, java, microservices, microprofile
:pagename: about-helidon-SE
:description: Helidon SE introduction
:keywords: helidon, java, SE, microservices, Netty
:h1Prefix: SE

Helidon is a collection of Java libraries for writing microservices. Helidon
offers two programming models: Helidion SE and Helidon MP.

== About Helidon SE Components

Helidon SE is a compact toolkit that embraces the latest Java SE features:
reactive streams, asynchrous and functional programming, and fluent-style
APIs.

The REST framework for Helidon SE is the Helidon WebServer. It's built on top
of Netty and uses a straight forward request routing API and supports a
number of additional Helidon features:

[cols="2,6"]
|=======
| Reactive Web Server 
|  WebServer provides an asynchonous and reactive API for creating web applications. The API is inspired by popular NodeJS and Java frameworks.
<<se/webserver/01_introduction.adoc, Learn more>>.

| Health Checks 
|  The health check API combines the statuses of all the dependencies that affect availability and the ability to perform correctly such as network latency and storage. <<se/health/01_health.adoc, Learn more>>.

| gRPC 
|  Helidon gRPC Server provides a framework for creating gRPC (general-purpose Remote Procedure Calls) applications.
<<se/grpc/01_introduction.adoc, Learn more>>.

|Configuration  
| The Config component provides a Java API to load and process configuration properties in key/value form into a Config object which the application can use to retrieve config data.
<<se/config/introduction.adoc, Learn more>>. 

| Metrics 
|  Heldion supports both a base set and a Helidon-specific set of metrics that expose information in JSON format (as specified by the MicroProfile Metrics specification) or in plain text (for Prometheus metrics). 
<<se/metrics/01_metrics.adoc, Learn more>>.

| Helidon DB Client 
|  The new Helidon SE DB Client for Helidon 2.0 provides a unified, reactive API for working with databases in non-blocking way. 
<<se/dbclient/01_introduction.adoc, Learn more>>.

| Security 
|  The security modules modules support authentication, authorization, outbound security and audits for your applications.
<<se/security/01_introduction.adoc, Learn more>>.

|  CORS Support
|  Although it is possible for any Helidon application to implement its own support for CORS, there are common tasks (such as processing preflight requests) that can be provided in a Helidon module. <<se/cors/01_introduction.adoc, Learn more>>. 

| OpenTracing 
|  Helidon includes support for tracing through the OpenTracing APIs. Tracing is integrated with WebServer, gRPC Server, and Security.
<<se/tracing/01_tracing.adoc, Learn more>>.

| Helidon Web Client 
|  The new Helidon WebClient for Helidon SE 2.0 allows you to perform any HTTP requests to the target endpoint (via GET, PUT, etc.), and handle the provided response in a reactive way.
<<se/webclient/01_introduction.adoc, Learn more>>.

|OpenAPI  
|  The OpenAPI in Helidon SE allows your Helidon SE application to serve an OpenAPI document that describes your application’s endpoints.
<<se/openapi/01_openapi.adoc, Learn more>>.

| GraalVM Native Image support 
|  Helidon SE supports GraalVM native images for small footprint and lightening fast startup. <<se/guides/36_graalnative.adoc,Learn more>>.

| Netty I/O Client-Server Framework 
|  Helidon runs on top of Netty so there is no need for an application server. It is not derived from a Java EE application server. That means your cloud native application is compact and efficient without unnecessary overhead or bloat.

|JSON-P and JSON-B  
|  Helidon supports both JSON processing (JSON P) and JSON building (JSON B) APIs.
|=======

== Next Steps

Try the <<se/guides/02_quickstart.adoc,Helidon SE quickstart>> to get your
first Helidon SE application up and running in minutes.
