Skip to content

cfrs v0.3.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Oct 13:48
· 812 commits to main since this release

The first prerelease of cfrs, for tests.

Binaries

File System
cfrs-x86_64-unknown-linux-musl, pod-netns-x86_64-unknown-linux-musl Linux x86-64
cfrs-aarch64-unknown-linux-musl, pod-netns-aarch64-unknown-linux-musl Linux ARM64
cfrs-armv7-unknown-linux-musleabihf, pod-netns-armv7-unknown-linux-musleabihf Linux ARMv7 (32-bit, hard float)
cfrs-riscv64gc-unknown-linux-musl, pod-netns-riscv64gc-unknown-linux-musl Linux RISC-V 64

Each binary is static (musl). It needs no C library on the host.

Check a download

sha256sum -c SHA256SUMS --ignore-missing
gh attestation verify cfrs-x86_64-unknown-linux-musl --repo Azathothas/cfrs
cosign verify-blob --bundle SHA256SUMS.sigstore.json \
  --certificate-identity https://github.com/Azathothas/cfrs/.github/workflows/release.yml@refs/tags/v0.3.0-beta.1 \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com SHA256SUMS

Start

chmod +x cfrs-x86_64-unknown-linux-musl
./cfrs-x86_64-unknown-linux-musl demo --exit-on-verify     # a quick tunnel end to end
./cfrs-x86_64-unknown-linux-musl tunnel --url http://127.0.0.1:8080
./cfrs-x86_64-unknown-linux-musl warp run -- curl https://www.cloudflare.com/cdn-cgi/trace
./cfrs-x86_64-unknown-linux-musl pod doctor

See README.md for all commands.

What to report

Open an issue with:

  • the output of cfrs --version and cfrs pod doctor;
  • the command, and its output with RUST_LOG=cfrs=debug;
  • the network limits of the host (proxy, UDP, ports, DNS, TLS interception).

Limits of this prerelease

  • Linux only. macOS and Windows builds are not available yet.
  • A proxy that terminates TLS cannot carry the edge connection or the WARP
    MASQUE connection.
  • The netns backend of cfrs pod carries TCP and DNS, not other UDP.

The licenses of the crates in the binaries, with their texts: THIRD-PARTY-LICENSES.md.

The commits of this release

Features

  • Add agent rules and project settings (7ce01a1)
  • Add the pod-netns crate as a library and a CLI, and use it in cfrs (43ae652)
  • Add the HTTP/2 edge transport, for hosts that block UDP (b514e4d)
  • Add WARP client commands: status, license, rotate, delete, proxy, run (ae92492)
  • Add switch mode and fault injection to the virtual network (062b86b)
  • Serve the shim control socket and import remote addresses (12e9f61)
  • Serve SOCKS5 UDP ASSOCIATE in the WARP proxy (d95fbf6)
  • Add cfrs warp tun, the full-device mode of WARP (7a0065b)
  • Add the project facts to the agent rules (c9f4033)
  • Add the release workflow, and find the program in PATH in pod-netns (da1efe8)

Repairs

  • Fix the clippy warnings and apply rustfmt (22fb916)

Build and internals

  • Vendor the edge client as crates/cfrs-edge (6f7cec6)
  • Build both binaries by default, fix ioctl calls for musl, add CI (e6ccba2)
  • pod-netns: test lo and TUN setup in the netns probe (04e3012)
  • Replace the vendored edge crate with our own edge client (98a1a8c)
  • Use a compare-exchange loop for the capnp read budget (ee9174c)
  • pod-netns: support 32-bit ARM in the seccomp backend (361d1d7)

Documents

  • Rewrite the documents in STE100 and remove narrative content (84b8eb8)
  • Rewrite the comments of the WARP test tools in STE100 (28d8027)

Other

  • Import the merged cfrs tree (bc71399)