Welcome to Armeria

Armeria is an open-source asynchronous RPC/API client/server library built on top of Java 8, Netty 4.1, HTTP/2, and Thrift. Its primary goal is to help engineers build high-performance asynchronous Thrift microservices that use HTTP/2 as a session layer protocol, although it is designed to be protocol-agnostic and highly extensible (for example, you can serve a directory of static files via HTTP/2 and run Java EE web applications).

It is open-sourced and licensed under Apache License 2.0 by LINE Corporation, who uses it in production.

Want a quick tour?

Check out the introductory slides and case study.

Features

HTTP/2

Essential features for building microservices

  • Metrics
  • Circuit breaker
  • Distributed call tracing via Zipkin

Even higher performance on Linux

  • JNI-based socket I/O
  • BoringSSL-based TLS connections

Completely asynchronous

  • Asynchronous connection pool ensures your application never blocks even on pool exhaustion.
  • Domain name lookups are also fully asynchronous thanks to Netty’s asynchronous domain name resolver.

Compatibility with existing Thrift implementations

  • Works with THttpClient, the official Thrift-over-HTTP client
  • Works with the code generated by the official Thrift IDL compiler
  • Automatically upgrades to HTTP/2 when used with the Armeria client

Compatibility with existing Java EE web applications

  • Runs any Java EE web applications on the same TCP/IP port
  • Your Java EE web application speaks HTTP/2!