awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
line avatar

line/armeria

0
View on GitHub↗
5,115 stars·998 forks·Java·Apache-2.0·28 viewsarmeria.dev↗

Armeria

Armeria is a Netty-based microservice framework used for building high-performance asynchronous services. It functions as a multi-protocol RPC server capable of exposing gRPC, Thrift, and REST services on a single unified port.

The project is distinguished by its ability to run diverse communication protocols simultaneously and its integrated RPC debugging web console, which allows for the discovery and invocation of remote procedure calls via JSON. It also includes a gRPC to JSON transcoder to enable web client compatibility with Protobuf services.

The framework provides a comprehensive suite of microservice capabilities, including reactive RPC clients with circuit breakers and retries, client-side load balancing, and service discovery integration with DNS, ZooKeeper, and Consul. It further covers distributed system observability through metrics collection, distributed tracing, and interactive service documentation.

Armeria supports the embedding of legacy servlet containers and integrates with third-party web frameworks to allow coexistence within a single server process.

Features

  • Netty-Based Servers - Uses a non-blocking event-driven model based on Netty to handle many concurrent connections with few threads.
  • Multi-Protocol - Functions as a unified server capable of hosting gRPC, Thrift, and REST services on a single port.
  • Multi-Protocol Servers - Runs gRPC, Thrift, GraphQL, and HTTP on a single unified server to streamline communication.
  • Thread Pool Offloading - Moves blocking synchronous service logic from the network event loop to a dedicated worker thread pool.
  • Service Discovery Clients - Integrates with DNS, ZooKeeper, and Consul to enable autonomous client-side service discovery and routing.
  • Service Meshes - Implements service mesh capabilities including client-side load balancing and circuit breakers for resilient microservice communication.
  • Apache Thrift Integrations - Facilitates communication with remote services using the Apache Thrift binary protocol for efficient data exchange.
  • Hybrid RPC Hosting - Runs both gRPC and Thrift implementations over HTTP/1 and HTTP/2 using official compilers and clients.
  • Thrift RPC Servers - Serves remote procedure calls over HTTP using binary, compact, JSON, or text serialization formats via Thrift.
  • Dynamic Service Discovery - Locates available service instances in real-time using external sources like DNS or service registries.
  • gRPC Client Implementations - Provides the ability to execute remote procedure calls over HTTP/2 to trigger actions on a remote server.
  • gRPC Implementations - Implements remote procedure calls using gRPC with support for multiple serialization formats and clients.
  • gRPC-Web Bridging - Supports communication via HTTP/1.1, HTTP/2, and gRPC-Web to bridge various client formats to the server.
  • JSON Transcoding - Converts gRPC service calls into JSON-based HTTP requests to enable compatibility with web clients.
  • HTTP/2 Support - Handles connections via TLS or cleartext and supports protocol upgrades from HTTP/1 to HTTP/2.
  • HTTP Client Integrations - Enables sending requests to RESTful endpoints using a base URI and relative paths to retrieve or update data.
  • Client-Side Load Balancing - Implements client-side logic to distribute outgoing requests across multiple cluster nodes without a central proxy.
  • Multi-Protocol Service Publishing - Exposes a single service implementation across multiple communication protocols including HTTP, gRPC, and Thrift.
  • Single Port Protocol Multiplexing - Routes multiple RPC protocols like gRPC and Thrift over a single port by inspecting request headers and payloads.
  • gRPC Service Implementations - Hosts gRPC services supporting multiple serialization formats and protocols for diverse client communication.
  • Reactive RPC Clients - Ships reactive RPC clients with built-in support for circuit breakers, retries, and backpressure.
  • Multi-Protocol Hosting - Runs gRPC, Thrift, and REST services on a single server and port to simplify network architecture.
  • Single-Port Multi-Protocol Support - Hosts gRPC, Thrift, REST, and static files on one port to eliminate the need for external proxies.
  • Non-Blocking I/O Interfaces - Uses reactive streams and non-blocking connection pools to prevent application stalling under high load.
  • Reactive Application Development - Builds non-blocking services using reactive streams to handle high concurrency and prevent application stalling.
  • Interceptor Middleware - Processes requests and responses through a sequence of reusable decorators to handle cross-cutting concerns like authentication.
  • Resiliency & Observability Patterns - Combines circuit breakers, client-side load balancing, and health checks to ensure microservice system stability.
  • Reactive Data Streams - Regulates data flow between producers and consumers using backpressure to prevent memory exhaustion during high-load streaming.
  • RPC Debugging Consoles - Provides an integrated web console for discovering and executing remote procedure calls using human-friendly JSON.
  • RPC Debugging Consoles - Provides a web-based interface to browse available remote methods and execute calls using human-friendly JSON.
  • Blocking Task Offloaders - Provides mechanisms to offload synchronous service logic to dedicated thread pools to prevent event loop starvation.
  • Request Retries - Automatically resends failed network requests based on specific error responses to improve system reliability.
  • RPC Service Documentation - Produces interactive documentation pages that allow users to verify server status and test RPC calls.
  • Resiliency Decorators - Wraps requests and responses with logic for circuit breakers and retries to improve service resilience.
  • Client-Side Load Balancing - Distributes outgoing requests across discovered service instances based on health checks and weighting without a central proxy.
  • Service Endpoint Distribution Strategies - Supports advanced traffic distribution strategies like weighted round-robin and sticky sessions for discovered service endpoints.
  • Registry-Based Service Discovery - Retrieves backend server information from external registries such as ZooKeeper, Eureka, and Consul.
  • DNS-Based Service Discovery - Resolves backend server lists using DNS A and SRV records with automatic TTL-based refreshes.
  • Reflection Services - Exposes a reflection service that allows clients to discover available services and methods hosted by the server.
  • RPC Traffic Debugging - Provides a web-based interface for inspecting and debugging remote procedure call traffic using JSON.
  • Circuit Breakers - Stops traffic to unhealthy service instances to prevent cascading failures across the distributed system.
  • Backpressure Management - Regulates data flow between producers and consumers using backpressure to prevent memory exhaustion during large response streaming.
  • Health-Based Endpoint Filtering - Performs periodic health checks to remove unhealthy servers from the active request rotation.
  • Automatic Service Registrations - Broadcasts server information to a discovery service upon startup to enable automated client routing.
  • Distributed Observability Systems - Integrates distributed tracing, metrics collection, and health checks to monitor performance across multiple service boundaries.
  • gRPC Service Observability - Tracks performance metrics and operational health specifically for hosted gRPC services.
  • Distributed Tracing - Tracks requests across multiple service boundaries using distributed tracing to analyze execution flow.
  • Service Metrics Monitoring - Collects and tracks runtime performance and health indicators on both server and client sides.
  • Service Method Mapping - Maps HTTP methods and paths to logic using annotations to implement standard CRUD operations.
  • Request Interception Middleware - Allows wrapping clients to modify outgoing requests or responses before they reach the destination.
  • Service Middleware Pipelines - Enables the application of middleware functions to intercept or modify requests and responses in a specific sequence.
  • Microservices and Messaging - Asynchronous RPC/REST framework for building microservices.
  • Language Frameworks - Asynchronous RPC/REST library for Java.
  • Microservices - Asynchronous RPC/REST client and server library.
  • Network Programming - Asynchronous RPC/API client/server library.

Star history

Star history chart for line/armeriaStar history chart for line/armeria

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Armeria

Similar open-source projects, ranked by how many features they share with Armeria.
  • apache/brpcapache avatar

    apache/brpc

    17,545View on GitHub↗

    brpc is a high-performance C++ RPC framework and network programming library designed for building distributed systems. It functions as a multi-protocol RPC server capable of hosting and detecting multiple communication protocols, including gRPC, Thrift, HTTP, Redis, and Memcached, on a single TCP port. The project distinguishes itself through high-throughput data transport and memory efficiency, utilizing RDMA-based transport to bypass the kernel TCP stack and zero-copy memory management to eliminate data duplication. It also implements the Raft algorithm for consensus-based state replicatio

    C++rpc
    View on GitHub↗17,545
  • grpc/grpc-dotnetgrpc avatar

    grpc/grpc-dotnet

    4,469View on GitHub↗

    This project is a .NET implementation of the gRPC framework, providing a system for executing functions on remote servers as if they were local calls. It serves as a high-performance remote procedure call (RPC) framework that utilizes HTTP/2 for service connectivity and binary communication protocols to ensure efficient data exchange. The implementation includes a gRPC-Web proxy, which acts as a translation layer to enable browser-based applications to communicate with gRPC services through web-compatible requests. It further supports the creation of HTTP/2 service meshes to connect distribut

    C#
    View on GitHub↗4,469
  • grpc-ecosystem/grpc-springgrpc-ecosystem avatar

    grpc-ecosystem/grpc-spring

    3,706View on GitHub↗

    grpc-spring is a framework for integrating gRPC servers and clients into Spring applications. It provides a suite of tools for managing the lifecycle of remote procedure call servers, automating client stub injection, and implementing request interception within a Java environment. The project enables high-performance remote procedure call communication through annotation-driven service registration and automatic configuration of client stubs. It includes a specialized interceptor library for modifying requests and responses, as well as a telemetry tool for exporting performance metrics and d

    Javagrpcgrpc-frameworkgrpc-java
    View on GitHub↗3,706
  • apache/dubbo-spring-boot-projectapache avatar

    apache/dubbo-spring-boot-project

    5,389View on GitHub↗

    This project is an integration framework that bootstraps Apache Dubbo remote procedure call services within Spring Boot applications. It serves as a microservice communication framework that enables the implementation of RPC services, service discovery, and distributed governance through automated configuration. The project distinguishes itself by providing a cross-language RPC bridge, allowing services written in different languages to communicate via standards such as gRPC and Protobuf. It further enables the exposure of backend microservices as REST endpoints using the Triple protocol for

    Javadubbo
    View on GitHub↗5,389
See all 30 alternatives to Armeria→

Frequently asked questions

What does line/armeria do?

Armeria is a Netty-based microservice framework used for building high-performance asynchronous services. It functions as a multi-protocol RPC server capable of exposing gRPC, Thrift, and REST services on a single unified port.

What are the main features of line/armeria?

The main features of line/armeria are: Netty-Based Servers, Multi-Protocol, Multi-Protocol Servers, Thread Pool Offloading, Service Discovery Clients, Service Meshes, Apache Thrift Integrations, Hybrid RPC Hosting.

What are some open-source alternatives to line/armeria?

Open-source alternatives to line/armeria include: apache/brpc — brpc is a high-performance C++ RPC framework and network programming library designed for building distributed… grpc/grpc-dotnet — This project is a .NET implementation of the gRPC framework, providing a system for executing functions on remote… grpc-ecosystem/grpc-spring — grpc-spring is a framework for integrating gRPC servers and clients into Spring applications. It provides a suite of… apache/dubbo-spring-boot-project — This project is an integration framework that bootstraps Apache Dubbo remote procedure call services within Spring… grpc/grpc-rust — grpc-rust is a native gRPC framework for Rust designed for building high-performance remote procedure call clients and… connectrpc/connect-go — Connect-go is a library for building type-safe remote procedure call services that are wire-compatible with gRPC and…