{"id":27072518,"url":"https://github.com/deep-neural/libwebtransport","last_synced_at":"2025-06-27T18:33:06.940Z","repository":{"id":285667767,"uuid":"958920881","full_name":"deep-neural/libwebtransport","owner":"deep-neural","description":"C/C++ implementation of the WebTransport","archived":false,"fork":false,"pushed_at":"2025-04-02T02:22:07.000Z","size":209,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T03:18:56.348Z","etag":null,"topics":["0-rtt","c-plus-plus","cpp","http3","libwebtransport","low-latency","media-streams","multiplexed-streams","quic","tls","webtransport"],"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/deep-neural.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}},"created_at":"2025-04-02T01:28:18.000Z","updated_at":"2025-04-02T02:22:11.000Z","dependencies_parsed_at":"2025-04-02T03:29:06.989Z","dependency_job_id":null,"html_url":"https://github.com/deep-neural/libwebtransport","commit_stats":null,"previous_names":["deep-neural/libwebtransport"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deep-neural/libwebtransport","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deep-neural%2Flibwebtransport","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deep-neural%2Flibwebtransport/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deep-neural%2Flibwebtransport/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deep-neural%2Flibwebtransport/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deep-neural","download_url":"https://codeload.github.com/deep-neural/libwebtransport/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deep-neural%2Flibwebtransport/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262311048,"owners_count":23291671,"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":["0-rtt","c-plus-plus","cpp","http3","libwebtransport","low-latency","media-streams","multiplexed-streams","quic","tls","webtransport"],"created_at":"2025-04-05T23:18:11.613Z","updated_at":"2025-06-27T18:33:06.881Z","avatar_url":"https://github.com/deep-neural.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://libwebtransport.example\"\u003e\u003cimg src=\"./.github/Screenshot 2025-03-17 012510.png\" alt=\"libwebTransport\" height=\"150px\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  libwebtransport\n  \u003cbr\u003e\n\u003c/h1\u003e\n\u003ch4 align=\"center\"\u003eA pure C/C++ implementation of the WebTransport API leveraging QUIC and HTTP/3\u003c/h4\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/deep-neural/libwebtransport\"\u003e\u003cimg src=\"https://img.shields.io/badge/libwebTransport-C/C++-blue.svg?longCache=true\" alt=\"libwebTransport\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://datatracker.ietf.org/doc/html/rfc9000\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=RFC\u0026message=9000\u0026color=brightgreen\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://datatracker.ietf.org/doc/html/rfc9001\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=RFC\u0026message=9001\u0026color=brightgreen\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://datatracker.ietf.org/doc/html/rfc9002\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=RFC\u0026message=9002\u0026color=brightgreen\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://datatracker.ietf.org/doc/html/rfc9114\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=RFC\u0026message=9114\u0026color=brightgreen\" /\u003e\u003c/a\u003e\n  \u003cbr\u003e\n    \u003ca href=\"https://github.com/deep-neural/libwebtransport\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=Build\u0026message=Documentation\u0026color=brightgreen\" /\u003e\u003c/a\u003e\n    \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-5865F2.svg\" alt=\"License: MIT\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n### New Release\n\nlibwebTransport v1.0.0 has been released! See the [release notes](https://github.com/deep-neural/libwebtransport/) to learn about new features, enhancements, and breaking changes.\n\nIf you aren’t ready to upgrade yet, check the [tags](https://github.com/deep-neural/libwebtransport) for previous stable releases.\n\nWe appreciate your feedback! Feel free to open GitHub issues or submit changes to stay updated in development and connect with the maintainers.\n\n-----\n\n### Usage\n\nlibwebtransport is distributed as a pure C/C++ library. To integrate it into your project, ensure you have a compatible C/C++ compiler and the necessary build tools (e.g., Make, CMake). Clone the repository and link against the library in your build system.\n\n## Simple API\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth\u003e Server \u003c/th\u003e\n\u003cth\u003e Client \u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```cpp\n#include \u003cweb_transport.h\u003e\n#include \u003ciostream\u003e\n\nint main() {\n    web_transport::Server server(\"0.0.0.0\", 443);\n    \n    server.setCertFile(\"./publickey.pem\");\n    server.setKeyFile(\"./privatekey.pem\");\n    \n    server.onSession([](void* session_ptr, const std::string\u0026 path) {\n\n        auto* session = static_cast\u003cweb_transport::ServerSession*\u003e(session_ptr);\n        std::cout \u003c\u003c \"New session on path: \" \u003c\u003c path \u003c\u003c std::endl;\n\n        session-\u003eonDatagramRead([session](const std::vector\u003cuint8_t\u003e\u0026 data) {\n            std::cout \u003c\u003c \"onDatagramRead: \" \u003c\u003c data.data() \u003c\u003c std::endl;\n        });\n\n        return true;\n    });\n    \n    server.initialize();\n    server.listen();\n    \n    return 0;\n}\n```\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```cpp\n#include \u003cweb_transport.h\u003e\n\nint main() {\n    web_transport::Client client(\"https://example.com/path\");\n    \n    client.setPublicKey(\"./publickey.pem\");\n    \n    client.onSessionOpen([](void* session_ptr) {\n        auto* session = static_cast\u003cweb_transport::ClientSession*\u003e(session_ptr);\n        std::cout \u003c\u003c \"Session opened!\" \u003c\u003c std::endl;\n        \n        // Send a datagram\n        session-\u003esendDatagram({1, 2, 3, 4});\n    });\n    \n    client.connect();\n    client.runEventLoop();\n    \n    return 0;\n}\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n**[Example Applications](examples/README.md)** contain code samples demonstrating common use cases with libwebTransport.\n\n**[API Documentation](https://libwebtransport.example/docs)** provides a comprehensive reference of our Public APIs.\n\nNow go build something amazing! Here are some ideas to spark your creativity:\n* Transfer large files in real-time with QUIC’s low latency and stream multiplexing.\n* Develop a real-time multiplayer game server with ultra-responsive data channels.\n* Create interactive live-streaming applications featuring dynamic data exchange.\n* Implement low-latency remote control and telemetry for embedded and IoT devices.\n* Integrate server push and bidirectional streams for cutting-edge web applications.\n\n## Building\n\nSee [BUILDING.md](https://github.com/danielv4/libwebtransport/blob/master/BUILDING.md) for building instructions.\n\n### Features\n\n#### WebTransport API\n* Pure C/C++ implementation of the emerging [WebTransport](https://www.w3.org/TR/webtransport/) API for bidirectional data streams.\n* Supports both reliable and unreliable data delivery modes.\n* Enables server push, stream multiplexing, and efficient session management.\n\n#### QUIC \u0026 HTTP/3 Powered Connectivity\n* Built on QUIC—harnessing features like 0-RTT connection establishment and connection migration.\n* Leverages HTTP/3 for reduced latency, improved congestion control, and robust performance.\n* Multiplexed streams allow concurrent data transfers without head-of-line blocking.\n\n#### Data Streams\n* Bidirectional and unidirectional streams for flexible data transfer.\n* Offers ordered and unordered delivery options to suit various application needs.\n* Customizable stream priorities and flow control mechanisms.\n\n#### Security\n* Utilizes TLS 1.3 integrated within QUIC for state-of-the-art encryption.\n* Provides end-to-end secure data channels with advanced protection against network threats.\n\n#### Pure C/C++\n* Written entirely in C/C++ with no external dependencies beyond standard libraries.\n* Wide platform support: Windows, macOS, Linux, FreeBSD, and more.\n* Optimized for high performance with fast builds and a comprehensive test suite.\n* Easily integrated into existing projects using common build systems.\n\n### Contributing\n\nCheck out the [contributing guide](https://github.com/deep-neural/libwebtransport/wiki/Contributing) to join the team of dedicated contributors making this project possible.\n\n### License\n\nMIT License - see [LICENSE](LICENSE) for full text\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeep-neural%2Flibwebtransport","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeep-neural%2Flibwebtransport","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeep-neural%2Flibwebtransport/lists"}