RoadRunner
  • ๐ŸŸ General
    • What is RoadRunner?
    • Features
    • Quick Start
    • Installation
    • Configuration
    • Contributing
    • Upgrade and Compatibility
  • ๐Ÿ‘ทPHP Worker
    • Worker
    • Workers pool
    • Developer mode
    • Code Coverage
    • Debugging
    • Environment
    • Manual workers scaling
    • Auto workers scaling
    • RPC
  • ๐ŸŸขCustomization
    • Building RR with a custom plugin
    • Integrating with Golang Apps
    • Writing a Middleware
    • Writing a Jobs Driver
    • Writing a Plugin
    • Events Bus
  • ๐Ÿ”ŒPlugins
    • Intro into Plugins
    • Centrifuge (WebSockets)
    • Service (Systemd)
    • Configuration
    • Server
    • Locks
    • gRPC
    • TCP
  • ๐ŸŒCommunity Plugins
    • Intro into Community Plugins
    • Circuit Breaker
    • SendRemoteFile
    • RFC 7234 Cache
  • ๐Ÿ”ตApp Server
    • Production Usage
    • RoadRunner with NGINX
    • RR as AWS Lambda
    • Docker Images
    • CLI Commands
    • Systemd
  • ๐Ÿ”Key-Value
    • Intro into KV
    • Memcached
    • In-Memory
    • BoltDB
    • Redis
  • ๐Ÿ“ฆQueues and Jobs
    • Intro into Jobs
    • Google Pub/Sub
    • Beanstalk
    • In-Memory
    • RabbitMQ
    • BoltDB
    • Kafka
    • NATS
    • SQS
  • ๐Ÿ•ธ๏ธHTTP
    • Intro into HTTP
    • Headers and CORS
    • Proxy IP parser
    • Static files
    • X-Sendfile
    • Streaming
    • gzip
  • ๐Ÿ“ˆLogging and Observability
    • OpenTelemetry
    • HealthChecks
    • Access Logs
    • AppLogger
    • Metrics
    • Grafana
    • Logger
  • ๐Ÿ”€Workflow Engine
    • Temporal.io
    • Worker
  • ๐ŸงฉIntegrations
    • Migration from RRv1 to RRv2
    • Spiral Framework
    • Yii
    • Symfony
    • Laravel
    • ChubbyPHP
  • ๐ŸงชExperimental Features
    • List of the Experimental Features
  • ๐ŸšจError codes
    • CRC validation failed
    • Allocate Timeout
  • ๐Ÿ“šReleases
    • v2025.1.1
    • v2025.1.0
    • v2024.3.5
    • v2024.3.4
    • v2024.3.3
    • v2024.3.2
    • v2024.3.1
    • v2024.3.0
Powered by GitBook
On this page
  • Introduction
  • How to enable experimental features
  • List of experimental features
  • Support for loading envfiles in the .rr.yaml: [>= v2023.3.5]
  • Support for the HTTP3 server: [>=2023.3.8]

Was this helpful?

Edit on GitHub
  1. Experimental Features

List of the Experimental Features

PreviousChubbyPHPNextCRC validation failed

Last updated 10 months ago

Was this helpful?

Introduction

Starting from the RR v2023.3.4 release, we have introduced a new feature called Experimental Features. This feature allows you to try out new features that are not yet ready for production use.

How to enable experimental features

To enable experimental features, you need to run RR with the -e (--enable-experimental) flag. For example:

./rr serve -e

Or:

./rr serve --enable-experimental

List of experimental features

Support for loading in the .rr.yaml: [>= v2023.3.5]

In the v2023.3.5 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:

.rr.yaml
version: "3"
envfile: .env

Support for the HTTP3 server: [>=2023.3.8]

In the v2023.3.8 we added experimental support for the HTTP3 server. It can work with the ACME provider to generate certificates for the HTTP3 server automatically.

Sample .rr.yaml file:

.rr.yaml
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 ACME provider:

.rr.yaml
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.here
mkcert -install && mkcert -client localhost 127.0.0.1 ::1 && mkcert localhost 127.0.0.1 ::1

This command will generate the client and server certificates for the localhost domain. You may use them in the configuration file:

.rr.yaml
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"
curl3 --http3 -k --cert localhost+2.pem --key localhost+2-key.pem https://127.0.0.1:34555/

You may also generate testing certificates manually and use them in the configuration file. To do that, you may use or :

Client certificates might be used in your favorite http3 client. For example, you may use to test the HTTP3 server:

๐Ÿงช
envfiles
mkcert
certbot
curl3