Wissance.Hydra
1.0.0
dotnet add package Wissance.Hydra --version 1.0.0
NuGet\Install-Package Wissance.Hydra -Version 1.0.0
<PackageReference Include="Wissance.Hydra" Version="1.0.0" />
<PackageVersion Include="Wissance.Hydra" Version="1.0.0" />
<PackageReference Include="Wissance.Hydra" />
paket add Wissance.Hydra --version 1.0.0
#r "nuget: Wissance.Hydra, 1.0.0"
#:package Wissance.Hydra@1.0.0
#addin nuget:?package=Wissance.Hydra&version=1.0.0
#tool nuget:?package=Wissance.Hydra&version=1.0.0
Hydra
Hydra is a high-performance, multi-channel TCP server written on C#. It is designed to handle a massive number of concurrent client connections—tested successfully with up to 50,000 simultaneous clients. Its key feature is the ability to manage multiple listening sockets (server sockets) within a single server instance, making it a true multi-channel communication hub.
🚀 Key Features
- Massive Scalability: Efficiently handles tens of thousands of concurrent TCP client connections.
- Multi-Channel Architecture: Supports creating and managing multiple independent server endpoints (sockets) from a single server process.
- High Performance: Built with
asynchronous I/Oand optimized for minimal resource consumption under heavy load. - Reliability: Designed for stability, ensuring continuous operation even with a large number of connected clients.
- **Allows to protect channel with
TLS(X509certificates) for preventing data from being captured by sniffer
🖥️ Usage
Example starting TCP-server without TLS:
// 1. Create Server cofifuration
ServerChannelConfiguration mainInsecureChannel = new ServerChannelConfiguration()
{
IpAddress = "127.0.0.1",
Port = 23456,
IsSecure = false
};
ITcpServer server = new MultiChannelTcpServer(new[] { mainInsecureChannel }, new NullLoggerFactory(), null, null);
// Example Echo server with data reverse
server.AssignHandler( async (d, c) =>
{
string msg = System.Text.Encoding.Default.GetString(d);
return d.Reverse().ToArray();
});
OperationResult startResult = await server.StartAsync();
// ...
OperationResult stopResult = await server.StopAsync();
🧪 Performance & Testing
Hydra has been load-tested to handle up to 50000 concurrent client connections across its channels. Performance metrics depend on hardware, network configuration, and the workload (e.g., message frequency, size).
📈 Plans
- Add Multicahnnel
UDP - Make server that allow to combine
TCPandUDP - Measure performance values with
50000of clients
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request:
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
😺 Contributors
Wissance.Hydra contributors
<a href="https://github.com/Wissance/Hydra/graphs/contributors"> <img src="https://contrib.rocks/image?repo=Wissance/Hydra" /> </a>
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.3)
-
net8.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 117 | 3/5/2026 |
1. Multichannel TCP Server
2. TLS support