For command interceptors, the strongest matches are tower-rs/tower (Tower is a modular framework designed specifically for building), alamofire/alamofire (Alamofire implements a robust middleware-driven pipeline using request interceptors) and grpc-ecosystem/grpc-spring (This framework provides a robust implementation of the interceptor). openfeign/feign and grpc/grpc round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Find the best command interceptor libraries for your project. Compare top open-source options ranked by activity and stars to pick the right one.
Tower is a modular service abstraction layer for the Rust programming language, providing a framework for building asynchronous request-response pipelines. It serves as a set of core components for managing backpressure, balancing loads, and abstracting service discovery. The project distinguishes itself through a layer-based middleware composition model, allowing services to be wrapped in recursive chains of decorators. This enables the declarative application of cross-cutting concerns, such as timeouts, rate limiting, and retries, in a protocol-agnostic manner. The library covers a broad r
Tower is a modular framework designed specifically for building asynchronous request-response pipelines using a middleware pattern, making it a perfect fit for implementing command interceptors in Rust.
Alamofire is an HTTP networking library that provides a foundation for managing network requests and responses through a chainable, type-safe interface. It serves as an asynchronous request manager, coordinating concurrent network operations and data streams while maintaining application responsiveness. The library distinguishes itself through a protocol-oriented request adaptation system, which utilizes interceptors to modify or authenticate requests before dispatch. It employs a middleware-driven pipeline to process traffic, handling encoding, authentication, and error recovery in a modular
Alamofire implements a robust middleware-driven pipeline using request interceptors to modify, authenticate, and log network commands, fitting the core requirements for command interception within a networking context.
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
This framework provides a robust implementation of the interceptor pattern specifically for gRPC services within the Spring ecosystem, allowing you to modify, log, and handle requests asynchronously as required.
Feign is a declarative Java HTTP client framework that maps method signatures to REST API requests. It functions as an HTTP interface mapper, allowing the creation of type-safe clients by defining service interfaces with annotations to eliminate manual request logic. The framework features a pluggable HTTP transport layer, which decouples request definition from execution by routing network traffic through interchangeable underlying HTTP engines. It provides a comprehensive request management pipeline including interceptors for modifying headers, policy-driven retry logic for failure recover
This framework provides a robust request-response pipeline with built-in support for interceptors, allowing you to dynamically modify headers and log traffic within your command-based service communication.
gRPC is a language-agnostic remote procedure call framework designed for high-performance communication between distributed services. It utilizes a structured interface definition language to generate consistent client stubs and server skeletons, enabling applications to invoke methods on remote servers as if they were local objects. By leveraging the HTTP/2 transport layer, the framework supports efficient binary serialization and multiplexed data exchange across diverse programming environments. The framework distinguishes itself through its support for flexible communication patterns, incl
gRPC provides a robust, native interceptor framework that allows you to intercept, modify, and log remote procedure calls, effectively serving as middleware for command-like service requests.
grpc-rust is a native gRPC framework for Rust designed for building high-performance remote procedure call clients and servers. It provides an asynchronous communication stack and a protocol buffers implementation for encoding, decoding, and generating type-safe code from service definitions. The project enables the implementation of unary and bi-directional data streaming over the HTTP/2 protocol. It includes specialized support for gRPC-Web integration, allowing browser-based clients to communicate with services through protocol translation. The infrastructure covers a broad range of distr
This framework provides native support for interceptor middleware within its gRPC implementation, allowing you to hook into, log, and modify request-response cycles in an asynchronous Rust environment.
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 sui
Armeria is a high-performance microservice framework that natively implements a decorator-based middleware pattern for intercepting, modifying, and logging RPC requests, making it a robust choice for implementing command interceptors.
Axios is an isomorphic, promise-based HTTP client designed for making asynchronous network requests across different JavaScript execution environments, including the browser and Node.js. It functions as a JSON API client that serializes JavaScript objects into JSON and parses server responses into structured data. The project features a system for managing reusable client instances with shared configurations, such as base URLs and default settings. It includes a mechanism for intercepting outgoing requests and incoming responses globally, allowing data to be transformed before it reaches the
Axios provides a robust implementation of the interceptor pattern for HTTP requests and responses, allowing you to dynamically modify, log, and handle asynchronous command-like network calls.
Hertz is a high-performance Go HTTP framework designed for building scalable microservices, RESTful APIs, and AI applications. It functions as a high-performance web server and a communication framework for microservices, utilizing non-blocking I/O and zero-copy memory management to handle high-concurrency traffic. The project distinguishes itself through a microservices communication toolkit that supports high-efficiency remote procedure calls via gRPC and Thrift protocols. It implements an asynchronous middleware engine based on an onion model, allowing for a pluggable request-response pipe
Hertz is a high-performance web framework that natively implements an asynchronous middleware engine using the onion model, providing the exact interceptor pattern required to handle, modify, and log requests in a microservices architecture.
AWS Powertools for Python is a utility framework designed for building production-ready Python functions on AWS Lambda. It provides a comprehensive suite of tools for observability, event parsing, routing, and idempotency management to streamline the development of serverless applications. The project distinguishes itself through specialized capabilities for event-driven architectures and AI agent orchestration. It enables the implementation of AI agents by exposing functions as tools via OpenAPI schemas and managing conversation states. Additionally, it features an idempotency library that p
This framework provides a robust middleware utility for AWS Lambda that implements the interceptor pattern to handle, modify, and log command-like events within serverless functions.
re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized, immutable database that serves as the single source of truth for the entire application state, enforcing a strict unidirectional data flow where events trigger state transitions and subsequent view updates. The framework distinguishes itself through a reactive signal graph and an interceptor-based middleware pipeline. By treating application logic as a sequence of data-driven events and declarative side effects, it decouples business logic from the view layer. This architectur
This framework uses a robust interceptor-based middleware pipeline to handle, modify, and log events within a command-driven architecture, making it a direct implementation of the requested pattern for state management.
Crush is a framework designed to orchestrate and secure the execution of external tools invoked by large language models. It functions as a middleware layer that manages the flow of agentic tool calls, providing a controlled environment for terminal-based automation and task processing. The project distinguishes itself by implementing a policy-driven security layer that intercepts, validates, and modifies tool execution requests. By wrapping command calls within a process-boundary layer, it allows for the automated approval of specific operations and the dynamic injection of contextual metada
Crush is a framework that implements the interceptor pattern specifically for command-line tool execution, allowing you to validate, modify, and log commands within an agentic workflow.
linq2db is a type-safe object-relational mapper that translates LINQ expressions into optimized SQL queries for multiple database providers. It functions as a database mapper that links classes to tables and includes a SQL query builder and a command-line schema tool for generating data classes from existing databases. The project provides high-performance bulk data processing for inserting and loading large volumes of records via batch or binary copy methods. It also supports advanced SQL operations, including window functions, common table expressions for recursive hierarchical querying, an
This is an object-relational mapper that includes built-in database operation interceptors, allowing you to hook into and modify SQL commands and execution lifecycles as requested.
Kit is a microservices architectural framework and toolkit for Go. It provides a set of standardized primitives and abstractions for implementing service, endpoint, and transport layers in a decoupled manner. The framework focuses on system instrumentation through integrated distributed request tracing and a service instrumentation toolkit that utilizes counters and gauges to export performance data to external monitoring backends. It includes a structured logging library that records system events as key-value pairs to ensure compatibility with log aggregation tools. The project covers a br
This framework provides a robust middleware pattern specifically designed for intercepting and decorating service endpoints, making it a standard choice for implementing command-style request-response logging and modification in Go microservices.
Redux-Saga is a middleware for managing complex asynchronous flows and side effects in Redux applications. It functions as an asynchronous state orchestrator and side effect manager that uses JavaScript generator functions to coordinate concurrent tasks and long-running background processes tied to a global state store. The system utilizes a generator-based effect middleware to handle external I/O and API requests outside of the main application logic. It provides a mechanism to start, pause, and cancel multiple asynchronous operations, allowing the application to prevent race conditions and
This library implements a middleware pattern specifically designed to intercept and manage asynchronous actions in a state-driven architecture, providing the core capability to handle and coordinate command-like side effects.
Feathers is a database-agnostic Node.js application framework designed for building scalable backend systems. It functions as a real-time API framework that provides a server implementation for both REST endpoints and WebSocket connections. The framework decouples application logic from the underlying database technology and communication protocols. This allows a single service to handle both HTTP and Socket requests while separating business logic from the specific data persistence layer. The system organizes data operations through a standardized service-based interface and utilizes hook-b
Feathers uses a robust hook-based middleware system that allows you to intercept, modify, and log service calls, making it a strong implementation of the command interceptor pattern for backend services.
Moleculer is a Node.js microservices framework designed for building distributed systems. It functions as a distributed service broker, task orchestrator, and service mesh framework, enabling a decentralized architecture with built-in service discovery and load balancing. The project differentiates itself through a pluggable transport layer supporting protocols such as NATS, Redis, TCP, and Kafka, as well as a dedicated microservices API gateway that maps external HTTP and WebSocket requests to internal service actions. It includes built-in fault tolerance mechanisms, including circuit breake
Moleculer is a microservices framework that natively implements a robust middleware and interceptor pattern for its service actions, allowing you to dynamically modify, log, and handle commands within a distributed system.
Seneca is a message-driven architecture framework and microservices toolkit for Node.js. It functions as a distributed task orchestrator and pattern-based message router, allowing developers to build systems of decoupled services that communicate via a message bus. The framework distinguishes itself through a modular plugin system that organizes business logic into reusable, configurable modules. It supports dynamic action extensions, enabling new handlers to wrap or override existing action patterns to inject custom logic without modifying original code. The system covers a broad range of c
Seneca is a message-driven framework that uses a plugin-based architecture to intercept and wrap action patterns, allowing you to dynamically modify, log, and handle commands within your system.
A lightweight CQRS module for Nest framework (node.js) :balloon:
This module provides a structured implementation of the command pattern and middleware-like interceptors for the NestJS framework, enabling asynchronous command handling and logging within a CQRS architecture.
Commanded is an Elixir framework designed for building event-sourced applications that utilize domain-driven design. It provides a structured environment for implementing command-query responsibility segregation, allowing developers to separate write-side command processing from read-side data projection. By treating state changes as an immutable sequence of events, the framework ensures a reliable audit trail and facilitates system recovery. The project distinguishes itself through its support for distributed process orchestration and event-driven middleware pipelines. It enables the managem
Commanded is a CQRS/ES framework that natively implements command middleware and interceptors to handle, validate, and modify commands asynchronously, fitting the core requirements for command processing in an Elixir environment.
gRPC-Web is a JavaScript client library that enables browser applications to call gRPC services through an HTTP proxy, using Protocol Buffers for serialization. It provides a browser-based gRPC client that supports unary, server-streaming, and bidirectional streaming RPCs, along with a code generator that produces JavaScript and TypeScript client stubs from .proto service definitions. The library includes an interceptor framework for attaching cross-cutting logic like authentication and retries to client calls, and supports setting Unix timestamp deadlines on RPCs for server-side timeout enfo
This library provides a robust interceptor framework specifically designed for the command-like structure of gRPC calls, allowing you to implement middleware for logging, authentication, and request modification in browser-based applications.
Use Commanded to build Elixir CQRS/ES applications
Commanded is a framework for building CQRS/ES applications in Elixir that natively uses middleware to intercept, modify, and log commands as they flow through the system.
Connect-go is a library for building type-safe remote procedure call services that are wire-compatible with gRPC and HTTP. It provides a Go implementation of Protocol Buffers for structured data exchange, enabling the creation of multi-protocol RPC servers and generated type-safe clients. The framework is distinguished by its polyglot protocol support, allowing a single server handler to serve requests using several different protocols simultaneously over HTTP. This includes the ability to toggle between different transport protocols for the same service and the use of pluggable content negot
Connect-go provides a robust interceptor system that allows you to hook into the request-response lifecycle to log, modify, and handle RPC commands asynchronously, fitting the middleware pattern for command-based systems.
This project is a Java command dispatch framework that maps user input to application logic using annotation-based processing. It provides a unified interface for registering and executing commands, allowing developers to define command syntax, parameter requirements, and execution logic through standard method annotations. The framework distinguishes itself through its cross-platform command handler, which abstracts platform-specific input and registration systems into a single codebase. This allows for consistent command processing across diverse environments, including server proxies, chat
This framework provides a robust system for mapping and executing commands with support for context injection and argument resolution, serving as a specialized implementation of the command pattern for Java applications.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| tower-rs/tower | 4.1K | Rust | mit | |
| alamofire/alamofire | 42.4K | Swift | MIT | |
| grpc-ecosystem/grpc-spring | 3.7K | Java | apache-2.0 | |
| openfeign/feign | 9.8K | Java | Apache-2.0 | |
| grpc/grpc | 44.9K | C++ | Apache-2.0 | |
| grpc/grpc-rust | 12.3K | Rust | MIT | |
| line/armeria | 5.1K | Java | Apache-2.0 | |
| axios/axios | 109.1K | JavaScript | MIT | |
| cloudwego/hertz | 7.3K | Go | Apache-2.0 | |
| aws-powertools/powertools-lambda-python | 3.3K | Python | MIT-0 |