MockServer is a highly sophisticated, multi-protocol HTTP(S) mock server and proxy for testing, written in Java with Netty. It supports HTTP/1.1, HTTP/2, HTTP/3 (QUIC), gRPC, WebSockets, DNS, TCP, and binary protocols on a single port. The core engine provides expectation-based request matching, response generation, forwarding, proxying, recording, verification, and chaos engineering (latency, connection drops, error injection). It also includes built-in LLM mocking (OpenAI, Anthropic, Gemini, etc.), OIDC/OAuth2/SAML identity providers, SCIM provisioning, WASM custom rules, and drift detection. The repository is a monorepo containing the Java server, multi-language client libraries (Java, Node, Python, Ruby, Go, .NET, Rust, PHP), a React dashboard UI, IDE plugins (JetBrains, VS Code), Helm charts, Docker images, and extensive CI/CD pipelines via Buildkite. The architecture is modular with clear separation of concerns: core model/matcher/serialization in `mockserver-core`, Netty transport in `mockserver-netty`, language-specific clients in `mockserver-client-*`, and a React UI in `mockserver-ui`. The codebase demonstrates strong engineering practices including DTO patterns with Jackson serializers, a matcher hierarchy with compiled-once validators, bounded caches, constant-time equality checks, and extensive test coverage with integration tests across multiple environments.
CIM (Cross-platform Instant Messaging) is a production-grade, modular instant messaging framework built with Java 17, Spring Boot 3.3, and Netty. It provides a complete IM solution including a Netty-based server (cim-server) for handling client connections and message forwarding, a routing server (cim-forward-route) for message routing, user login/offline management, and a client SDK (cim-client-sdk) for building custom clients. The system uses Zookeeper for service discovery, Redis for caching and session management, and optionally MySQL for offline message persistence. It supports group chat, private chat, offline messages, delayed messages, emoji, AI mode, and a built-in command system. The architecture is microservice-oriented with clear separation of concerns, and the codebase demonstrates strong engineering practices including consistent hashing for server selection, a custom ring buffer wheel for delayed tasks, a dynamic HTTP proxy for RPC calls, and a trie-based prefix search. The project includes comprehensive unit and integration tests, Docker support, and CI/CD pipelines.
Ratpack is a lightweight, reactive web framework for the JVM built on Netty and Java 8. It provides an asynchronous execution model based on Promise/Operation, a flexible handler chain for request processing, pluggable configuration from multiple sources, and a Registry-based dependency injection system. The framework includes first-class Groovy DSL support, a comprehensive test harness, and integrations with Spring Boot, Google Guice, Dropwizard Metrics, multiple template engines (Handlebars, Thymeleaf, Rocker, Groovy), Redis for session storage, and reactive libraries (RxJava 2, Reactor). The codebase is modular with over 30 subprojects, extensive Spock test coverage, and a Gradle plugin for continuous reloading. While the public API is well-designed and documented, the internal packages are tightly coupled to Netty internals and some integration modules may lag behind external library versions.
Apache Seata is a distributed transaction solution for microservices, implementing AT (Automatic), TCC, Saga, and XA transaction modes. It provides a Transaction Coordinator (TC) server, client libraries for Resource Managers (RM) and Transaction Managers (TM), and supports multiple databases, serialization formats, and service discovery backends. The architecture is plugin-driven via Java SPI, with a custom EnhancedServiceLoader for loading compressors, serializers, registries, and configuration providers. The codebase includes a Netty-based RPC layer with protocol versioning (v0, v1, v2), a robust Saga state machine engine with a visual designer, and a Spring Boot-based console for cluster management and global transaction monitoring. It integrates deeply with Spring, Dubbo, gRPC, and other RPC frameworks, and offers GraalVM native-image support for server deployments. The repository is extensive with over 30 Maven modules, reflecting both its production maturity and the complexity of maintaining backward compatibility through a deprecated io.seata package layer.
Sekiro is a multi-language, distributed RPC framework designed to expose capabilities from restricted or hard-to-reach environments. The server is a Java application built on Netty that listens on a configurable port (default 5612) and supports three transport protocols: a custom binary protocol (Sekiro native), HTTP, and WebSocket. It acts as a central hub: external consumers send invocation requests (via HTTP or the native protocol), and the server routes them to registered client handlers running in restricted environments (e.g., mobile apps, internal networks). The server maintains client groups with consistent hashing and queue-based load balancing, and handles heartbeats, timeouts, and connection lifecycle. It also includes a built-in proxy for serving documentation and static content. Architecturally, the server uses a protocol detection pipeline (ProtocolDetector) to identify the incoming protocol and install the appropriate handlers. For HTTP, it aggregates requests and delegates to ServiceHttp, which parses parameters and forwards invocations to the appropriate client group. For the native Sekiro protocol, it decodes packets and routes to RouterSekiro, which handles client registration and invoker connections. WebSocket clients are also supported for environments where raw TCP is unavailable. The system is stateless at the server level, with all client state managed in-memory via NettySekiroGroup instances. Key entry points are the Bootstrap.main() method, which starts the Netty server, and the various handler classes (ServiceHttp, RouterSekiro, ServiceSekiroClient, ServiceSekiroInvoker, ServiceWsClient). External dependencies include a custom Netty fork (sekiro-business-api), commons-lang3, SLF4J/Logback, and Lombok. The project uses Maven for building and includes a build script that produces a distributable zip. The codebase demonstrates solid engineering practices: clean separation of concerns, use of Netty's event loop model, a custom single-threaded event loop (Looper) for thread-safe group management, consistent hashing for client allocation, and a sampling-based event recording system for debugging. While the project is not a general-purpose RPC framework, it solves a specific niche (exposing capabilities from restricted contexts) effectively and with reasonable code quality.
Wildfire Chat IM Server is a production-grade instant messaging backend built on a heavily customized Moquette MQTT broker. It provides MQTT-based client connectivity, HTTP REST APIs for admin/robot/channel management, and supports features like private/group/chatroom/channel messaging, file/media storage (local or Qiniu), push notifications, sensitive word filtering, conference/voice-video events, social moments, and multi-domain mesh federation. The architecture is a multi-module Maven project (broker, common, sdk, distribution) using Netty for networking, Hazelcast for distributed caching, and MySQL/H2 with Flyway migrations for persistence. The codebase demonstrates solid engineering with annotation-driven routing, protobuf message serialization, and a clean SDK for server-side integration. However, it suffers from a god-class in MemoryMessagesStore, duplicated configurations, vendored Netty MQTT codec, and some security concerns (hardcoded keys, weak XOR encryption). It is actively maintained with frequent schema migrations and feature additions, but the licensing is ambiguous (multiple license files) and documentation is primarily in Chinese.
Moco is a Java library and standalone server for creating mock HTTP servers, primarily used for integration testing. It supports HTTP/HTTPS, REST, WebSocket, SSE, CORS, proxy with failover/playback, recording/replaying, and template-based responses. Architecture is modular: moco-core provides interfaces and implementations (Netty-based server, request matchers, response handlers), moco-runner adds a CLI for JSON-based configuration and standalone execution, and moco-junit/moco-junit5 provide JUnit integration. The system is configured either via a fluent Java API (central `Moco` static factory) or JSON configuration files, making it easy to stub endpoints in tests or as a standalone mock service. It uses Netty for high-performance HTTP serving, Jackson for JSON processing, Freemarker for templates, and Guava for utilities. The codebase is well-structured with clear separation of concerns, extensive tests, and support for modern protocols like HTTP/2 and WebSocket.
Apache ShardingSphere ElasticJob is a distributed job scheduling framework providing elastic sharding, failover, misfire handling, and lifecycle management. It is a Java library that can be embedded in applications or used via Spring Boot auto-configuration. The system coordinates jobs across multiple nodes using a registry center (ZooKeeper, etcd, Nacos, or in-memory). It supports multiple job types (simple, dataflow, script, HTTP) and provides RESTful admin APIs, event tracing, and error notification. The architecture is modular with clear SPI-based extensibility for job executors, error handlers, tracing listeners, and registry center providers. The codebase is well-engineered with extensive tests, but retains some legacy integration paths (Spring XML namespace) and tight coupling to ZooKeeper in core modules.
Turms is a production-grade, open-source instant messaging engine designed for 100K to 10M concurrent users. The system follows a microservices architecture with two core Java/Spring Boot servers: turms-gateway (handles client connections, authentication, session management, and push) and turms-service (implements business logic for messaging, groups, users, conversations, storage, and admin API). Both servers are built on a reactive stack (Project Reactor, Netty) for non-blocking I/O and high throughput. The platform includes a Vue.js admin UI (turms-admin), multiple client SDKs (JavaScript, Kotlin, Swift, Dart, C++), a Flutter chat demo, and a plugin system for extensibility (anti-spam, push notifications, MinIO storage, Rasa chatbot, LiveKit conferencing). Data is stored in MongoDB (sharded), Redis (session, blocklist, sequence IDs), and optionally Elasticsearch for full-text search. The codebase demonstrates strong engineering practices: custom RPC codecs for cluster communication, a property metadata framework for configuration validation, thread-safe rate limiting, and a well-defined plugin extension point system. While primarily an application, it includes an AI serving module (PaddleOCR) for content moderation, but this is a minor component. The repository is actively maintained with frequent commits, comprehensive CI/CD pipelines, and Terraform deployment scripts.
This repository is a comprehensive multi-module Maven project that serves as a learning and demonstration resource for the Java ecosystem, specifically focusing on Spring Boot, microservices, middleware, and AI integration. It contains over 20 independent modules, each showcasing a specific technology or pattern: from core Spring features (AOP, events, lifecycle) to advanced distributed systems (Dubbo, gRPC, Netty, RocketMQ, Kafka, Redis, Elasticsearch, ShardingSphere, Sentinel, Nacos, Curator) and modern AI capabilities (LangChain4j-based RAG, agentic workflows, guardrails, MCP client, image generation, TTS). The architecture is a modular monolith where each module is independently runnable via its own Spring Boot application class, sharing a common utility library (whatsmars-common) for serialization, caching, consistent hashing, encryption, and logging. The AI module is particularly notable for implementing advanced patterns such as query compression, smart routing, re-ranking, structured output, and configurable agentic workflows (sequential, parallel, conditional, loop, supervisor). While the repository is not a single deployable product, it provides high-quality, well-documented examples that demonstrate non-obvious craftsmanship in areas like custom gRPC load balancing, consistent hashing with virtual nodes, and programmatic logger creation. The codebase is professionally written with good separation of concerns, though testing coverage is limited to utility classes. Overall, it is a valuable reference for Java developers exploring modern frameworks and AI integration patterns.
BlossomGateway is a custom API gateway built on Netty, supporting HTTP and Dubbo protocols. It uses Nacos for service registration and configuration, Redis for distributed rate limiting, and provides a pluggable filter chain for routing, load balancing (random, round-robin, weighted, consistent hash), authentication (JWT), gray release, flow control (Guava/Redis), circuit breaking (Hystrix), monitoring (Prometheus), and mocking. The gateway core is a Netty server that processes incoming HTTP requests, creates a GatewayContext, and runs through a chain of filters before routing to backend services. It also includes a client SDK (BlossomGateway-Client) for downstream services to register themselves. Additionally, the repository contains a separate custom RPC framework (BlossomRPC) with its own protocol, serialization, and dynamic proxy, which appears to be experimental/educational. The project is structured as a multi-module Maven project with clear separation of concerns. However, the codebase shows signs of being a learning project with many TODOs, hardcoded values, and personal promotional content, indicating it may not be production-ready.
This repository provides an HTTP/3 codec implementation for Netty, including QPACK header compression, frame encoding/decoding, and control stream handling. It is a library that integrates into Netty's channel pipeline to support HTTP/3 over QUIC. The codebase is well-structured, with extensive tests and reusable components like Huffman decoders, dynamic table management, and frame validation handlers. However, the repository has been archived and its work merged into the main Netty 4.2 branch, meaning it is no longer actively maintained. The code is mature but may be outdated relative to the latest Netty versions and RFC updates.