A lightweight TCP server framework for Go with message routing, middleware, and customizable packet handling.
EasyTCP is a lightweight TCP server framework written in Go that simplifies building TCP-based network applications. It provides a message router, middleware pipeline, and customizable packet handling to reduce the complexity of implementing robust TCP servers.
Go developers building custom TCP servers, network protocols, or real-time communication systems that require fine-grained control over packet structure and routing.
Developers choose EasyTCP for its non-invasive design, extensible architecture with custom packers and codecs, and the convenience of middleware and hooks, which streamline TCP server development without sacrificing flexibility.
:sparkles: :rocket: EasyTCP is a light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
EasyTCP builds on Go's standard net package, keeping the core simple and allowing easy integration without overhauling existing code, as emphasized in its modular philosophy.
The framework supports custom packers for defining packet formats, with a default Size|ID|Data structure, making it adaptable to various protocols, as shown in the custom packer examples.
Offers global and per-route middlewares for cross-cutting concerns like logging and recovery, streamlining common tasks in TCP server development with pipeline support.
Provides optional codecs for JSON, Protobuf, and Msgpack, enabling seamless encoding and decoding of message data without extra dependencies, as demonstrated in the quick start.
EasyTCP focuses on TCP basics and lacks built-in support for advanced network features like TLS encryption, protocol upgrades, or session management beyond hooks, requiring manual implementation.
Creating custom packers or codecs requires implementing interfaces from scratch, which can be complex and error-prone for teams not versed in low-level binary handling, as seen in the custom packer example.
Compared to mature frameworks, EasyTCP has fewer third-party plugins or community contributions, which may increase development time for niche requirements or integrations.