You want Cloud?
We got Clout!

Piranha is a cloud native extensible runtime, which delivers various integration libraries facilitating running applications in a non application server centric way. Some examples of integration libraries include JakartaEE libraries, as well as MicroProfile libraries, and integration libraries for various web frameworks, such as Faces, Vaadin, Wicket, etceteras.

Can Piranha really strip a server to the core in under a minute?

A traditional Enterprise Java runtime is an installed application server acting as a deployment target, which supports running multiple applications via archives, which are each isolated by classloaders, and serves these applications via remote protocols such as HTTP.

Piranha’s scalable architecture can strip away all these features until only the bare libraries remain. A web application can be run having only the libraries on the flat classpath, and not even having an HTTP server running.

Scalable architecture

Piranha can scale down to essentially a serverless framework, or you can use it as a unit testing framework, all the way up to something more akin to a traditional application server, and many steps in between.

Piranha Embedded

Can be used for embedding in your own application.

Used extensively within the Piranha project to verify its functionality.

Can be customized with HTTP and other functionality

Piranha Core Profile

A runtime delivering Jakarta Core Profile support

A micro services ready runtime

One web application archive

Piranha Servlet

One web application archive

A runtime that delivers the same application level support as a traditional Servlet container

Piranha Micro Profile

A runtime delivering Eclipse Micro Profile support

One web application archive

Includes an HTTP server

Piranha Web Profile

A runtime delivering Jakarta Web Profile support

One web application archive

Includes an HTTP server

Piranha Micro

Delivers you with a single executable JAR file.

At minimum can be used as a Servlet container.

Includes an HTTP server.

One web application archive.

Piranha Platform

A runtime delivering Jakarta Platform support

One web / enterprise application archive

Includes an HTTP server

Piranha Server

Delivers you with an installed version of Piranha

At minimum can be used as a Servlet container

Includes an HTTP server

Supports multiple web applications.

Piranha Isolated

Delivers you with an installed version of Piranha

Includes an HTTP server

Supports multiple web applications.

Keeps applications isolated from each other.

Cloud Native

The cloud deployment model focusses on small, immutable units. With containers like Docker and platforms like Kubernetes, the archive and deployment features of a traditional application server are not necessarily needed anymore, but the Jakarta EE and MicroProfile APIs themselves are still really useful. Piranha can focus on only these APIs, and completely omitting (not just hiding) all functionality related to archives and deployment, making it optimally suited for a cloud environment.

Unit (like) testing

Because traditional Jakarta EE products come with the deployment model, there is a bit more involved with testing code. Tools like Arquillian make integration testing quite easy, but often developers like a more unit testing oriented approach as well.

EmbeddedPiranha piranha = new EmbeddedPiranhaBuilder()
.servlet("SnoopServlet", SnoopServlet.class.getName())
.servletMapping("SnoopServlet", "/SnoopServlet")
.build()
.start();

EmbeddedRequest request = new EmbeddedRequestBuilder()
.servletPath("/SnoopServlet")
.build();

EmbeddedResponse response = new EmbeddedResponseBuilder()
.build();

piranha.service(request, response); assertTrue(response.getResponseAsString().endsWith("SUCCESS"));

piranha.stop()
.destroy();

PIRANHA TEAM ACCOLADES

2

JAVA CHAMPION

2

SPEC/PROJECT LEAD

1

DUKE CHOICE AWARD