List of the Experimental Features
Introduction
Starting with RR v2023.3.4, we introduced a new capability called Experimental Features. This allows you to try out features that are not yet ready for production use.
How to enable experimental features
To enable experimental features, run RR with the -e (--enable-experimental) flag. For example:
./rr serve -eOr:
./rr serve --enable-experimentalList of experimental features
In v2023.3.5, we added experimental support for loading envfiles in the .rr.yaml configuration file. .env file should be in the same directory as the .rr.yaml file.
Sample .rr.yaml file:
version: "3"
envfile: .envSupport for the HTTP/3 server: [>=2023.3.8]
[>=2023.3.8]In v2023.3.8, we added experimental support for an HTTP/3 server. It can work with the ACME provider to generate certificates for the HTTP/3 server automatically.
Sample .rr.yaml file:
version: "3"
server:
command: "php worker.php"
relay: pipes
http:
address: 127.0.0.1:15389
pool:
num_workers: 2
http3:
address: 127.0.0.1:34555
key: "localhost+2-key.pem"
cert: "localhost+2.pem"Or if you use an ACME provider:
version: "3"
server:
command: "php worker.php"
relay: pipes
http:
address: 127.0.0.1:15389
pool:
num_workers: 2
http3:
address: 127.0.0.1:34555
key: "localhost+2-key.pem"
cert: "localhost+2.pem"
ssl:
acme:
certs_dir: rr_le_certs
email: you-email-here@email
alt_http_port: 80
alt_tlsalpn_port: 443
challenge_type: http-01
use_production_endpoint: false
domains:
- your-cool-domains.hereYou can also generate test certificates manually and use them in the configuration file. To do that, use mkcert or certbot:
mkcert -install && mkcert -client localhost 127.0.0.1 ::1 && mkcert localhost 127.0.0.1 ::1This command generates the client and server certificates for the localhost domain. You can use them in the configuration file:
version: "3"
server:
command: "php worker.php"
relay: pipes
http:
address: 127.0.0.1:15389
pool:
num_workers: 2
http3:
address: 127.0.0.1:34555
key: "localhost+2-key.pem" # <- generated by mkcert: "localhost+2-key.pem"
cert: "localhost+2.pem" # <- generated by mkcert: "localhost+2.pem"You can use client certificates in your preferred HTTP/3 client. For example, use curl3 to test the HTTP/3 server:
curl3 --http3 -k --cert localhost+2.pem --key localhost+2-key.pem https://127.0.0.1:34555/Last updated
Was this helpful?