{"id":29193434,"url":"https://github.com/pableess/yamux-dotnet","last_synced_at":"2025-07-02T02:32:55.751Z","repository":{"id":300140492,"uuid":"1004274778","full_name":"pableess/yamux-dotnet","owner":"pableess","description":"Yamux protocol implementation for .NET","archived":false,"fork":false,"pushed_at":"2025-06-20T03:03:34.000Z","size":50,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-20T04:19:22.214Z","etag":null,"topics":["networking-protocols","yamux"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pableess.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-18T11:30:55.000Z","updated_at":"2025-06-20T03:03:37.000Z","dependencies_parsed_at":"2025-06-20T04:29:41.187Z","dependency_job_id":null,"html_url":"https://github.com/pableess/yamux-dotnet","commit_stats":null,"previous_names":["pableess/yamux-dotnet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pableess/yamux-dotnet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pableess%2Fyamux-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pableess%2Fyamux-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pableess%2Fyamux-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pableess%2Fyamux-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pableess","download_url":"https://codeload.github.com/pableess/yamux-dotnet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pableess%2Fyamux-dotnet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263064162,"owners_count":23408072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["networking-protocols","yamux"],"created_at":"2025-07-02T02:31:45.752Z","updated_at":"2025-07-02T02:32:55.693Z","avatar_url":"https://github.com/pableess.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yamux.NET\n\nYamux.NET is a .NET 9 library implementing the [Yamux multiplexing protocol](https://github.com/hashicorp/yamux/blob/master/spec.md), enabling multiple reliable, ordered, and independent streams (channels) over a single underlying connection (such as TCP). This is useful for building high-performance network applications, tunneling, or protocols that require multiplexed communication.\n\n## Features\n- Full-duplex, multiplexed streams over a single connection\n- Channel-based abstraction (`SessionChannel`, `IDuplexSessionChannel`)\n- Configurable flow control and window sizing\n- Automatic window tuning for optimal throughput\n- Keep-alive and round-trip time (RTT) measurement\n- Bandwidth and statistics tracking\n- .NET 9, async/await friendly\n\n## Getting Started\n\n### Install\nAdd a reference to the `Yamux` project or build from source for .NET 9.\n\n### Basic Usage\n```csharp\n// Create a Yamux session over a stream (e.g., NetworkStream)\nusing var session = stream.AsYamuxSession(isClient: true, options: new SessionOptions { ... });\nsession.Start();\n\n// Open a new channel\nusing var channel = await session.OpenChannelAsync();\n\n// Write to the channel\nawait channel.WriteAsync(data, cancellationToken);\n\n// Read from the channel\nvar result = await channel.Input.ReadAsync(cancellationToken);\n```\n\nSee `samples/Sample` and `samples/FileTransfer` for more complete examples.\n\n## Protocol\nThis library implements the [Yamux protocol specification](https://github.com/hashicorp/yamux/blob/master/spec.md) by HashiCorp.\n\n## License\nThis project is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpableess%2Fyamux-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpableess%2Fyamux-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpableess%2Fyamux-dotnet/lists"}