{"id":16154283,"url":"https://github.com/thomaseizinger/xtra-quinn-prototype","last_synced_at":"2025-04-06T23:44:13.493Z","repository":{"id":45104915,"uuid":"439780841","full_name":"thomaseizinger/xtra-quinn-prototype","owner":"thomaseizinger","description":"A PoC for using QUIC to establish direction connections between two actors.","archived":false,"fork":false,"pushed_at":"2022-01-09T07:21:25.000Z","size":65,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T13:19:43.761Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thomaseizinger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-19T05:12:43.000Z","updated_at":"2022-01-09T07:21:27.000Z","dependencies_parsed_at":"2022-09-18T12:02:31.499Z","dependency_job_id":null,"html_url":"https://github.com/thomaseizinger/xtra-quinn-prototype","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomaseizinger%2Fxtra-quinn-prototype","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomaseizinger%2Fxtra-quinn-prototype/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomaseizinger%2Fxtra-quinn-prototype/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomaseizinger%2Fxtra-quinn-prototype/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thomaseizinger","download_url":"https://codeload.github.com/thomaseizinger/xtra-quinn-prototype/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247569130,"owners_count":20959758,"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":[],"created_at":"2024-10-10T01:16:11.171Z","updated_at":"2025-04-06T23:44:13.468Z","avatar_url":"https://github.com/thomaseizinger.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Prototype for combining `xtra` and `quinn`\n\nThe question we started out with was: How can we use QUIC's multiplexing to establishing a direct connection between two actors in a p2p application?\n\nThe answer is:\n\n- Use a custom certificate verifier so we can use self-signed certificates.\n  We expect the certificate to be signed with a specific public key.\n  This has not been audited by a cryptographer so might be complete bogus.\n- Use libp2p `multistream-select` to negotiate the purpose of a newly opened, bi-directional stream.\n- Once established, spawn the actor appropriate for the given protocol and hand the reading and writing end to it.\n\n## Usage:\n\nCheck the output of `--help` for the two binaries provided.\n\n```shell\ncargo run --bin listener -- --help\ncargo run --bin dialer -- --help\n```\n\nThe listener supports protocol `/ping/1.0.0`, so once the dialer asks for which protocol to use you can enter that to upgrade successfully and receive ping/pong message.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomaseizinger%2Fxtra-quinn-prototype","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomaseizinger%2Fxtra-quinn-prototype","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomaseizinger%2Fxtra-quinn-prototype/lists"}