Installation

⚠️

Version 0.10.0 Breaking Changes:

  • The non-watch execute option has been removed. Dynamic configuration reloading is now enabled by default.
  • New log-dir option added to specify the log directory location.
  • Log files are now separated into access logs and error logs.

Building from Source

You can build an executable binary yourself by checking out this Git repository.

# Cloning the git repository
% git clone https://github.com/junkurihara/rust-rpxy
% cd rust-rpxy

# Update submodules
% git submodule update --init

# Build
% cargo build --release

Then you have an executive binary rust-rpxy/target/release/rpxy.

ℹ️

By default QUIC and HTTP/3 is enabled using quinn. If you want to use s2n-quic, build as follows. You may need several additional dependencies.

% cargo build --no-default-features --features http3-s2n --release

Package Installation for Linux (RPM/DEB)

You can find the Jenkins CI/CD build scripts for rpxy in the ./.build directory.

Prebuilt packages for Linux RPM and DEB are available at https://rpxy.gamerboy59.dev, provided by @Gamerboy59.

Prebuilt Binaries

Prebuilt binaries for amd64 (x86_64) and arm64 (aarch64) are available at GitHub Releases. The naming convention of the prebuilt binaries is as follows.

rpxy-${ARCH}-unknown-linux-${TARGET}-${BUILD_OPT}.tar.gz
VariableDescription
${ARCH}x86_64 or aarch64
${TARGET}gnu or musl
${BUILD_OPT}s2n: Using s2n-quic as QUIC library.
webpki-roots: Using WebPKI as the root certificate bundle for the connection with backend applications.
⚠️
If you are using self-signed certificates for the backend applications, you need to select non-webpki-roots binaries.
ℹ️
Dynamic Configuration: Since version 0.10.0, rpxy monitors configuration file changes and automatically reloads the configuration without requiring a restart. This is now the default behavior.
ℹ️
Note that we do not have an option of installation via crates.io, i.e., cargo install, at this point since some dependencies are not published yet. Alternatively, you can use docker image (see Container section) as the easiest way for amd64 environment.