mark3labs/mcp-go is a production-oriented Go SDK implementing both server and client sides of the Model Context Protocol (MCP). The codebase is a library, not a standalone application: it exposes server.NewMCPServer, client.NewClient, and transport constructors for stdio, SSE, Streamable HTTP, and in-process communication. It supports tools, resources, prompts, tasks, sampling, elicitation, roots, completions, subscriptions, multi-round-trip requests, OAuth, OpenTelemetry tracing, schema validation, and cursor-based pagination. The SDK maintains dual-era protocol support, negotiating between legacy handshake-based versions (2024-11-05 through 2025-11-25) and the modern stateless 2026-07-28 core, with automatic per-request era detection and bridging for server-initiated requests. Architecturally, the repository is organized as modular Go packages: mcp defines protocol types and schema helpers, server implements JSON-RPC dispatch, sessions, middleware, hooks, tasks, and HTTP/SSE/stdio transports, while client provides a high-level client plus a transport abstractions layer. Notable engineering strengths include defensively coded transports, resumable SSE streams with event replay, an OAuth layer hardened against RFC 9728 resource-binding attacks, cached JSON Schema validation, and an extensive test suite including conformance tests, race-condition tests, and e2e HTTP tests. The repository also ships a separate otel submodule for OpenTelemetry integration and a docs site under www/. This is purely an application/infrastructure repository; there are no data pipelines, notebooks, or research artifacts. The primary data flow is JSON-RPC messages exchanged between MCP servers and clients, with SSE used for notifications, streaming, and server-to-client requests. The code is strongly standards-driven and tightly tracked to the evolving MCP specification. While the dual-era protocol support adds significant complexity and maintenance burden, the implementation is well-tested, security-conscious, and contains several genuinely reusable components. A few stale example files and commented-out tests exist, but they do not materially affect the quality of the core SDK.
webtransport-go is a Go library implementing the WebTransport protocol over HTTP/3, based on quic-go. It provides both client and server functionality to establish WebTransport sessions over QUIC connections, supporting bidirectional and unidirectional streams, datagrams, and session flow control. The library follows draft-ietf-webtrans-http3-16 and includes mechanisms for capsule-based control messages, stream error mapping, and origin checking. It is used in production by projects like Centrifugo, go-libp2p, and MediaMTX. The architecture is modular, with separate components for session management, stream maps, flow control, and capsule parsing. The server integrates with http3.Server via ConfigureHTTP3Server and provides an Upgrade method on HTTP handlers. The client offers both one-shot Dial and multi-session NewClientConn. The codebase emphasizes correctness with extensive unit and integration tests, including tests for reordering, flow control, and error handling. Key design decisions include the use of goroutines for concurrent stream acceptance and capsule processing, channel-based notification for flow control updates, and careful handling of session close to ensure streams are properly terminated. The implementation handles edge cases like stream reordering before session establishment, deadline propagation, and graceful shutdown with configurable timeouts. The repository is well-maintained with active CI, linting, and dependency management. It demonstrates strong Go engineering practices with clean interfaces, proper error handling, and comprehensive test coverage.
This repository is a pure PHP implementation of the AMQP 0-9-1 protocol for interacting with RabbitMQ message brokers. It provides a robust client library handling connection management, channel multiplexing, message publishing/consuming, and wire-level protocol frame encoding/decoding. The architecture features layered abstractions: connection layer (TCP/socket handling), channel layer (logical channels over connections), message layer (AMQP message structure), and wire layer (binary serialization/deserialization). Key entry points include AMQPStreamConnection (primary connection interface) and AMQPChannel (queue/exchange operations). Data flows involve: publishing (user → channel.basic_publish() → AMQPWriter → socket → broker) and consuming (broker → socket → AMQPReader → channel.basic_consume() → user callback). The library supports advanced features like publisher confirms, consumer cancellation notifications, heartbeat monitoring, and batch publishing. The codebase demonstrates strong engineering practices: clear separation of concerns, extensive unit/functional test suite, protocol version handling via generated code from JSON specifications, and active maintenance with recent commits. While supporting broad PHP versions (5.6-8.5), it has dropped older versions showing proactive maintenance. Dependencies are minimal (sockets extension required, pcntl optional for signals). The library is production-ready for building distributed systems requiring reliable asynchronous messaging.
SwiftNIO HTTP/2 is a Swift library providing HTTP/2 protocol support for SwiftNIO-based applications. It implements the HTTP/2 specification (RFC 7540) and HPACK header compression (RFC 7541) in pure Swift, with no external dependencies beyond SwiftNIO core. The library features a modular architecture separating frame handling, connection state management, stream multiplexing, and header compression. Key components include a connection state machine for managing HTTP/2 connection lifecycle, stream multiplexing logic for creating child channels per HTTP/2 stream, and an HPACK implementation with Huffman coding. The repository includes extensive unit tests, integration tests, performance benchmarks, and fuzz testing to ensure correctness and performance.
Activitypub-federation is a high-level Rust framework for implementing ActivityPub federation. It provides abstractions for handling incoming and outgoing activities, fetching remote objects, managing HTTP signatures, and integrating with web frameworks like Actix-web and Axum. The library uses a trait-based design where users define their own data structures and implement Object, Activity, and Actor traits to plug into the federation system. It includes sophisticated features like an activity queue with exponential backoff retry logic (1 minute, 1 hour, 2.5 days), automatic caching of remote objects, and comprehensive security measures including HTTP signature verification.
Kwik is a pure Java implementation of the QUIC transport protocol (RFC 9000, RFC 9001, RFC 9369) supporting versions 1 and 2, along with extensions for unreliable datagrams (RFC 9221) and reliable stream reset. It provides both client and server APIs, with a modular architecture consisting of core protocol engine, CLI tool, HTTP/0.9 support, qlog structured logging, and interoperability test harness. The library is designed for embedding in Java applications needing low-latency, multiplexed, encrypted network connections. It includes a custom TLS 1.3 engine (agent15) for handshake management and leverages Java's module system. Extensive unit tests and interop testing against other QUIC implementations ensure protocol compliance. The codebase demonstrates strong engineering practices with clean abstractions (filter chains, builder patterns, null objects), though some features like server connection migration and stream priority remain incomplete.
MQTT-SN Tools is a suite of four command-line applications for working with the MQTT-SN (MQTT for Sensor Networks) protocol. The system provides mqtt-sn-pub for publishing messages, mqtt-sn-sub for subscribing to topics, mqtt-sn-dump for monitoring packets, and mqtt-sn-serial-bridge for serial-to-UDP bridging. All tools share a common C library (mqtt-sn.c/h) that implements the MQTT-SN protocol handling, including socket management, packet encoding/decoding, keep-alive mechanics, and topic mapping. The architecture is modular with clear separation between the protocol library and application-specific logic. Each tool follows a standard pattern: parse command-line arguments, establish UDP connection to an MQTT-SN broker, perform protocol operations (connect, publish/subscribe, etc.), handle incoming/outgoing packets, and clean up resources. The project has active maintenance with recent commits and a test suite.
modbus4j is a Java library implementing the Modbus protocol (ASCII, RTU, TCP, UDP) for industrial automation. It provides both master (client) and slave (server) functionality, supporting standard function codes (read/write coils, discrete inputs, holding/input registers, mask write) and a wide range of data types including BCD, floats, and custom swapped variants. The architecture is modular with separate transport layers, a generic messaging framework (MessageControl, WaitingRoom, Transport), and locator-based high-level access. The library includes a process image simulation for slave devices and batch read capabilities. It was originally developed for Mango Automation and has a parallel Java 1.4 backport (src_cdc) that indicates aging. The codebase shows good separation of concerns and reusable patterns but suffers from technical drift (RXTX dependency, manual byte manipulation, outdated build tools) and lack of modern testing infrastructure.
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.