{"id":28019654,"url":"https://github.com/ombrac/ombrac","last_synced_at":"2026-05-17T07:02:28.062Z","repository":{"id":258448539,"uuid":"868728374","full_name":"ombrac/ombrac","owner":"ombrac","description":"Safe, fast, small TCP over QUIC tunnel using Rust","archived":false,"fork":false,"pushed_at":"2026-02-17T15:36:05.000Z","size":1238,"stargazers_count":76,"open_issues_count":4,"forks_count":7,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-23T23:00:30.757Z","etag":null,"topics":["proxy","quic","rust","socks","tcp","tunnel","udp"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ombrac.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-07T04:37:38.000Z","updated_at":"2026-02-17T15:36:01.000Z","dependencies_parsed_at":"2025-06-24T02:31:58.219Z","dependency_job_id":"de9f8696-4340-4a59-b4e2-64b7b7cb96f7","html_url":"https://github.com/ombrac/ombrac","commit_stats":null,"previous_names":["ombrac/ombrac"],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/ombrac/ombrac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ombrac%2Fombrac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ombrac%2Fombrac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ombrac%2Fombrac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ombrac%2Fombrac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ombrac","download_url":"https://codeload.github.com/ombrac/ombrac/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ombrac%2Fombrac/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29899485,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T12:09:13.686Z","status":"ssl_error","status_checked_at":"2026-02-27T12:09:13.282Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["proxy","quic","rust","socks","tcp","tunnel","udp"],"created_at":"2025-05-10T17:01:36.864Z","updated_at":"2026-02-27T15:21:47.626Z","avatar_url":"https://github.com/ombrac.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Ombrac\n\n[![docs][docs-badge]][docs-url]\n[![crates][crates-badge]][crates-url]\n[![Build Status][ci-badge]][ci-url]\n[![Build Status][release-badge]][release-url]\n[![Apache 2.0 Licensed][license-badge]][license-url]\n\n**Ombrac** is a high-performance, secure TCP-over-QUIC tunnel implemented in Rust\n\n## Features\n- **Secure**: Native TLS encryption built into the QUIC layer\n- **High Performance**: Low-latency multiplexing via QUIC bidirectional streams\n- **Versatile**: Supports SOCKS5, HTTP/HTTPS, and TUN device modes\n- **Zero-RTT**: Supports 0-RTT and 0.5-RTT for near-instant connections\n\n## Installation\nThe easiest way to get started is to download the latest pre-compiled binary from the [Releases Page](https://github.com/ombrac/ombrac/releases).\n\n### Get Started\n- **Homebrew**: `brew tap ombrac/tap \u0026\u0026 brew install ombrac`  \n- **Docker**: `docker pull ghcr.io/ombrac/ombrac/ombrac-server:latest`\n- **Cargo**: `cargo install ombrac-client ombrac-server --features binary`  \n\n### Build from Source\n```bash\ngit clone https://github.com/ombrac/ombrac.git \u0026\u0026 cd ombrac\ncargo build --release --bin ombrac-client --bin ombrac-server --features binary\n```\n\n## Usage\n### Server Setup\n```bash\nombrac-server -l \"[::]:443\" -k \"secret-key\" --tls-cert \"fullchain.pem\" --tls-key \"key.pem\"\n```\n\n### Client Setup\n```bash\nombrac-client -s \"server:443\" -k \"secret-key\" --socks \"127.0.0.1:1080\" --http \"127.0.0.1:8080\"\n```\n\n### Docker Deployment (Insecure Mode)\n```bash\n# Server\ndocker run -d \\\n  --name ombrac-server \\\n  -p 443:443/udp \\\n  ghcr.io/ombrac/ombrac/ombrac-server:latest \\\n  -l 0.0.0.0:443 \\\n  -k secret \\\n  --tls-mode insecure\n\n# Client\ndocker run -d \\\n  --name ombrac-client \\\n  -p 1080:1080/tcp \\\n  ghcr.io/ombrac/ombrac/ombrac-client:latest \\\n  -s remote:443 \\\n  -k secret \\\n  --socks 0.0.0.0:1080 \\\n  --tls-mode insecure\n```\n\n## CLI\n```bash\nUsage: ombrac-client [OPTIONS]\n\nOptions:\n  -c, --config \u003cFILE\u003e  Path to the JSON configuration file\n  -h, --help           Print help\n  -V, --version        Print version\n\nRequired:\n  -k, --secret \u003cSTR\u003e   Protocol Secret\n  -s, --server \u003cADDR\u003e  Address of the server to connect to\n\nProtocol:\n      --auth-option \u003cSTR\u003e  Extended parameter of the protocol, used for authentication related information\n\nEndpoint:\n      --http \u003cADDR\u003e             The address to bind for the HTTP/HTTPS server\n      --socks \u003cADDR\u003e            The address to bind for the SOCKS server\n      --tun-fd \u003cFD\u003e             Use a pre-existing TUN device by providing its file descriptor `tun_ipv4`, `tun_ipv6`, and `tun_mtu` will be ignored\n      --tun-ipv4 \u003cCIDR\u003e         The IPv4 address and subnet for the TUN device, in CIDR notation\n      --tun-ipv6 \u003cCIDR\u003e         The IPv6 address and subnet for the TUN device, in CIDR notation\n      --tun-mtu \u003cMTU\u003e           The Maximum Transmission Unit (MTU) for the TUN device. [default: 1500]\n      --fake-dns \u003cCIDR\u003e         The IPv4 address pool for the built-in fake DNS server, in CIDR notation. [default: 198.18.0.0/16]\n      --disable-udp-443 \u003cBOOL\u003e  Disable UDP traffic to port 443 [possible values: true, false]\n\nTransport:\n      --bind \u003cADDR\u003e                 The address to bind for transport\n      --server-name \u003cSTR\u003e           Name of the server to connect (derived from `server` if not provided)\n      --tls-mode \u003cTLS_MODE\u003e         Set the TLS mode for the connection [possible values: tls, m-tls, insecure]\n      --ca-cert \u003cFILE\u003e              Path to the Certificate Authority (CA) certificate file in 'TLS' mode, if not provided, the system's default root certificates are used\n      --client-cert \u003cFILE\u003e          Path to the client's TLS certificate for mTLS\n      --client-key \u003cFILE\u003e           Path to the client's TLS private key for mTLS\n      --zero-rtt \u003cBOOL\u003e             Enable 0-RTT for faster connection establishment [possible values: true, false]\n      --alpn-protocols \u003cPROTOCOLS\u003e  Application-Layer protocol negotiation (ALPN) protocols [default: h3]\n      --congestion \u003cALGORITHM\u003e      Congestion control algorithm to use (e.g. bbr, cubic, newreno) [default: bbr]\n      --cwnd-init \u003cNUM\u003e             Initial congestion window size in bytes\n      --idle-timeout \u003cTIME\u003e         Maximum idle time (in milliseconds) before closing the connection [default: 30000]\n      --keep-alive \u003cTIME\u003e           Keep-alive interval (in milliseconds) [default: 8000]\n      --max-streams \u003cNUM\u003e           Maximum number of bidirectional streams that can be open simultaneously [default: 100]\n\nLogging:\n      --log-level \u003cLEVEL\u003e  Logging level (e.g., INFO, WARN, ERROR) [default: INFO]\n```\n\n```bash\nUsage: ombrac-server [OPTIONS]\n\nOptions:\n  -c, --config \u003cFILE\u003e  Path to the JSON configuration file\n  -h, --help           Print help\n  -V, --version        Print version\n\nRequired:\n  -k, --secret \u003cSTR\u003e   Protocol Secret\n  -l, --listen \u003cADDR\u003e  Address to bind the server\n\nTransport:\n      --tls-mode \u003cTLS_MODE\u003e         Set the TLS mode for the connection [possible values: tls, m-tls, insecure]\n      --ca-cert \u003cFILE\u003e              Path to the Certificate Authority (CA) certificate file in 'TLS' mode, if not provided, the system's default root certificates are used\n      --tls-cert \u003cFILE\u003e             Path to the server's TLS certificate\n      --tls-key \u003cFILE\u003e              Path to the server's TLS private key\n      --zero-rtt \u003cBOOL\u003e             Enable 0-RTT for faster connection establishment [possible values: true, false]\n      --alpn-protocols \u003cPROTOCOLS\u003e  Application-Layer protocol negotiation (ALPN) protocols [default: h3]\n      --congestion \u003cALGORITHM\u003e      Congestion control algorithm to use (e.g. bbr, cubic, newreno) [default: bbr]\n      --cwnd-init \u003cNUM\u003e             Initial congestion window size in bytes\n      --idle-timeout \u003cTIME\u003e         Maximum idle time (in milliseconds) before closing the connection [default: 30000]\n      --keep-alive \u003cTIME\u003e           Keep-alive interval (in milliseconds) [default: 8000]\n      --max-streams \u003cNUM\u003e           Maximum number of bidirectional streams that can be open simultaneously [default: 1000]\n\nLogging:\n      --log-level \u003cLEVEL\u003e  Logging level (e.g., INFO, WARN, ERROR) [default: INFO]\n```\n\n## License\nThis project is licensed under the [Apache-2.0 License](./LICENSE).\n\n\n[docs-badge]: https://docs.rs/ombrac/badge.svg\n[docs-url]: https://docs.rs/ombrac\n[crates-badge]: https://img.shields.io/badge/crates.io-ombrac-orange\n[crates-url]: https://crates.io/crates/ombrac\n[license-badge]: https://img.shields.io/badge/license-apache-blue.svg\n[license-url]: https://github.com/ombrac/ombrac/blob/main/LICENSE\n[ci-badge]: https://github.com/ombrac/ombrac/workflows/CI/badge.svg\n[ci-url]: https://github.com/ombrac/ombrac/actions/workflows/ci.yml?query=branch%3Amain\n[release-badge]: https://github.com/ombrac/ombrac/workflows/Release/badge.svg\n[release-url]: https://github.com/ombrac/ombrac/actions/workflows/release.yml?query=branch%3Amain\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fombrac%2Fombrac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fombrac%2Fombrac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fombrac%2Fombrac/lists"}