Welcome to Armeria

Armeria is an open-source asynchronous HTTP/2 RPC/REST client/server library built on top of Java 8, Netty, Thrift and gRPC. Its primary goal is to help engineers build high-performance asynchronous microservices that use HTTP/2 as a session layer protocol.

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:



Integration with gRPC and Thrift

  • Your gRPC or Thrift service implementation runs on top of Armeria without any modification.

  • Works with the official gRPC or Thrift-over-HTTP client

  • Works with the code generated by the official Protobuf or Thrift IDL compiler

  • Supports various protocol combinations, such as:

    • gRPC-over-HTTP/1 & 2

    • Thrift-over-HTTP/1 & 2

    • gRPC-Web

  • See Running a Thrift service and Running a gRPC service.

Essential features for building microservices

Interactive web-based debug console

  • Browse the list of available RPC operations

  • Invoke an RPC operation via a web form

  • Share an RPC request with your colleagues so they can reproduce the problem easily

    • Just like sharing a cURL command, but works for RPC

  • See Browsing and invoking services with DocService.

Completely asynchronous and reactive

  • Built on top of Reactive Streams and Java 8 CompletableFuture

  • 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 Java EE web applications

Even higher performance on Linux

  • JNI-based socket I/O

  • BoringSSL-based TLS connections