SuperSocket
SuperSocket is a high-performance, extensible socket server application framework for .NET. It provides a robust architecture for building custom network communication applications with support for multiple protocols including TCP, UDP, and WebSocket.
- Project homepage: https://www.supersocket.net/
- Documentation: https://docs.supersocket.net/
- License: https://www.apache.org/licenses/LICENSE-2.0
Key features of SuperSocket include:
-
Flexible Pipeline Architecture: SuperSocket implements a pipeline-based processing model that allows for efficient handling of incoming data with customizable filters.
-
Protocol Abstraction: The framework abstracts away low-level socket operations and provides a clean interface for implementing various protocols through pipeline filters. It has built-in support for TCP, UDP, WebSocket, and even custom protocols.
-
Middleware Support: Extensible middleware system allowing for custom processing of connections and packages.
-
Session Management: SuperSocket provides comprehensive session handling capabilities, managing connection lifecycles from establishment to termination.
-
Command Handling System: Command-based processing model to handle client requests efficiently.
-
WebSocket Support: Full implementation of the WebSocket protocol with extensions like compression.
-
Modern .NET Integration: SuperSocket is built for modern .NET and integrates seamlessly with the dependency injection, configuration, and logging facilities in the .NET ecosystem.
-
Cross-Platform: As a .NET library, SuperSocket works across platforms supported by .NET.
-
Client Support: The framework includes client components for establishing connections to socket servers, including proxy capabilities.
-
High Performance: SuperSocket is designed for high throughput and low latency with efficient memory usage through buffer pooling and minimal allocations
SuperSocket is suitable for a wide range of applications including:
- Real-time communication systems
- IoT device connectivity
- Game servers
- Chat applications
- and any scenario requiring custom network protocols
Nuget Packages
Package | MyGet Beta Release | NuGet Stable Release |
---|---|---|
SuperSocket.ProtoBase | ||
SuperSocket.Primitives | ||
SuperSocket.Connection | ||
SuperSocket.Kestrel | ||
SuperSocket.Server | ||
SuperSocket.Server.Abstractions | ||
SuperSocket.Command | ||
SuperSocket.Client | ||
SuperSocket.Client.Proxy | ||
SuperSocket.WebSocket | ||
SuperSocket.WebSocket.Server | ||
SuperSocket.Udp | ||
SuperSocket.SerialIO | ||
SuperSocket.ProtoBuf | ||
SuperSocket.MessagePack |
Nightly build packages: https://www.myget.org/F/supersocket/api/v3/index.json
SuperSocket 2.0 Roadmap:
- 2025:
- More documents
- Performance test/tuning
- Fix issues of the existing features
- Other features requested by users