Skip to content
This repository has been archived by the owner on Sep 3, 2024. It is now read-only.

Quicr/transport

Repository files navigation

Transport Library

Single threaded, aysnc and queued transport api for QUICR

Buillding

  1. Needs C++20 clang, and cmake
  2. Download and install openssl
  • on a mac you can do ' brew install openssl
  • find where it is brew info openssl
  • set path to find it export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@3/lib/pkgconfig"
  1. Clone the repos git clone [email protected]:Quicr/transport.git cd transport git submodule update --init --recursive
  2. In the same parent directory, run
    • make all
    • make client
    • make server

Running

In order to test QUIC, the server needs to have a certificate. The program expects the

Generate self-signed certificate for really server to test with

with BoringSSL:

openssl req -nodes -x509 -newkey rsa:2048 -days 365 -keyout server-key.pem -out server-cert.pem

with MbedTLS:

openssl req -nodes -x509 -newkey ec:<(openssl ecparam -name secp256r1) -days 365 -subj "/C=US/ST=CA/L=San Jose/O=Cisco/CN=test.quicr.ctgpoc.com" -keyout server-key.pem -out server-cert.pem

Run:

RELAY_PORT=1234 build/cmd/server

and

RELAY_HOST=localhost RELAY_PORT=1234 build/cmd/client

Development

This project generally follows Google's and Mozilla's C++ styling, specifically enforced for naming and formatting: https://google.github.io/styleguide/cppguide.html

Linting via clang-tidy can be enabled via passing the -DLINT=ON option to CMake, which is what CI will enforce.

clang-format can be run be run by running make format. CI will enforce this. A pre-commit file for clang-format is provided, which you can install using pre-commit install.

Notes

  1. cmd/ - has client and server examples

About

Transport interface for QUICR Protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published