Skip to content
This repository has been archived by the owner on Feb 3, 2022. It is now read-only.

Releases: spiral-modules/roadrunner-binary

v2.5.2

23 Oct 09:28
95e7647
Compare
Choose a tag to compare

🩹 Fixes:

  • 🐛 Fix: ASLR builds causes problems in the docker.

v2.5.1

22 Oct 17:06
3581e39
Compare
Choose a tag to compare

🩹 Fixes:

  • 🐛 Fix: base64 response instead of json in some edge cases.

v2.5.0

20 Oct 08:54
571ec88
Compare
Choose a tag to compare

💔 Breaking change:

  • 🔨 Some drivers now use a new config key to handle local configuration. Involved plugins and drivers:
  • plugins: broadcast, kv
  • drivers: memory, redis, memcached, boltdb.

Old style:

broadcast:
    default:
        driver: memory
        interval: 1

New style:

broadcast:
  default:
    driver: memory
     config: {} <--------------- NEW
kv:
  memory-rr:
    driver: memory
    config: <--------------- NEW
      interval: 1

kv:
  memcached-rr:
    driver: memcached
    config: <--------------- NEW
       addr:
         - "127.0.0.1:11211"

broadcast:
  default:
    driver: redis
    config: <------------------ NEW
      addrs:
        - "127.0.0.1:6379"

👀 New:

  • ✏️ [BETA] GRPC plugin update to v2.
  • ✏️ Roadrunner-plugins repository. This is the new home for the roadrunner plugins with documentation, configuration samples, and common problems.
  • ✏️ [BETA] Let's Encrypt support. RR now can obtain an SSL certificate/PK for your domain automatically. Here is the new configuration:
    ssl:
      # Host and port to listen on (eg.: `127.0.0.1:443`).
      #
      # Default: ":443"
      address: "127.0.0.1:443"

      # Use ACME certificates provider (Let's encrypt)
      acme:
        # Directory to use as a certificate/pk, account info storage
        #
        # Optional. Default: rr_cache
        certs_dir: rr_le_certs

        # User email
        #
        # Used to create LE account. Mandatory. Error on empty.
        email: you-email-here@email

        # Alternate port for the http challenge. Challenge traffic should be redirected to this port if overridden.
        #
        # Optional. Default: 80
        alt_http_port: 80,


        # Alternate port for the tls-alpn-01 challenge. Challenge traffic should be redirected to this port if overridden.
        #
        # Optional. Default: 443.
        alt_tlsalpn_port: 443,

        # Challenge types
        #
        # Optional. Default: http-01. Possible values: http-01, tlsalpn-01
        challenge_type: http-01

        # Use production or staging endpoints. NOTE, try to use the staging endpoint (`use_production_endpoint`: `false`) to make sure, that everything works correctly.
        #
        # Optional, but for production should be set to true. Default: false
        use_production_endpoint: true

        # List of your domains to obtain certificates
        #
        # Mandatory. Error on empty.
        domains: [
            "your-cool-domain.here",
            "your-second-domain.here"
        ]
  • ✏️ Add a new option to the logs plugin to configure the line ending. By default, used \n.

New option:

# Logs plugin settings
logs:
    (....)
    # Line ending
    #
    # Default: "\n".
    line_ending: "\n"
http:
  address: 127.0.0.1:55555
  max_request_size: 1024
  access_logs: true <-------- Access Logs ON/OFF
  middleware: []

  pool:
    num_workers: 2
    max_jobs: 0
    allocate_timeout: 60s
    destroy_timeout: 60s
  • ✏️ HTTP middleware to handle X-Sendfile header.
    Middleware reads the file in 10MB chunks. So, for example for the 5Gb file, only 10MB of RSS will be used. If the file size is smaller than 10MB, the middleware fits the buffer to the file size.
http:
  address: 127.0.0.1:44444
  max_request_size: 1024
  middleware: ["sendfile"] <----- NEW MIDDLEWARE

  pool:
    num_workers: 2
    max_jobs: 0
    allocate_timeout: 60s
    destroy_timeout: 60s
  • ✏️ Service plugin now supports env variables passing to the script/executable/binary/any like in the server plugin:
service:
  some_service_1:
    command: "php test_files/loop_env.php"
    process_num: 1
    exec_timeout: 5s # s,m,h (seconds, minutes, hours)
    remain_after_exit: true
    env:  <----------------- NEW
      foo: "BAR"
    restart_sec: 1
  • ✏️ Server plugin can accept scripts (sh, bash, etc) in it's command configuration key:
server:
    command: "./script.sh OR sh script.sh" <--- UPDATED
    relay: "pipes"
    relay_timeout: "20s"

The script should start a worker as the last command. For the pipes, scripts should not contain programs, which can close stdin, stdout or stderr.

  • ✏️ Nats jobs driver support - PR.
nats:
  addr: "demo.nats.io"

jobs:
  num_pollers: 10
  pipeline_size: 100000
  pool:
    num_workers: 10
    max_jobs: 0
    allocate_timeout: 60s
    destroy_timeout: 60s

  pipelines:
    test-1:
      driver: nats
      prefetch: 100
      subject: "default"
      stream: "foo"
      deliver_new: "true"
      rate_limit: 100
      delete_stream_on_stop: false
      delete_after_ack: false
      priority: 2

  consume: [ "test-1" ]
  • Driver uses NATS JetStream API and is not compatible with non-js API.

  • ✏️ Response API for the NATS, RabbitMQ, SQS and Beanstalk drivers. This means, that you'll be able to respond to a specified in the response queue.
    Limitations:

    • To send a response to the queue maintained by the RR, you should send it as a Job type. There are no limitations for the responses into the other queues (tubes, subjects).
    • Driver uses the same endpoint (address) to send the response as specified in the configuration.

🩹 Fixes:

  • 🐛 Fix: local and global configuration parsing.
  • 🐛 Fix: boltdb-jobs connection left open after RPC close command.
  • 🐛 Fix: close beanstalk connection and release associated resources after pipeline stopped.
  • 🐛 Fix: grpc plugin fails to handle requests after calling reset.
  • 🐛 Fix: superfluous response.WriteHeader call when connection is broken.

📦 Packages:

  • 📦 roadrunner v2.5.0
  • 📦 roadrunner-plugins v2.5.0
  • 📦 roadrunner-temporal v1.0.10
  • 📦 endure v1.0.6
  • 📦 goridge v3.2.3

v2.5.0-rc.2

18 Oct 19:52
f3243d4
Compare
Choose a tag to compare
v2.5.0-rc.2 Pre-release
Pre-release

What's Changed

Full Changelog: v2.5.0-rc.1...v2.5.0-rc.2

v2.5.0-rc.1

16 Oct 21:12
f4c01df
Compare
Choose a tag to compare
v2.5.0-rc.1 Pre-release
Pre-release
  • ✏️ Nats jobs driver support - PR.
nats:
  addr: "demo.nats.io"

jobs:
  num_pollers: 10
  pipeline_size: 100000
  pool:
    num_workers: 10
    max_jobs: 0
    allocate_timeout: 60s
    destroy_timeout: 60s

  pipelines:
    test-1:
      driver: nats
      prefetch: 100
      subject: "default"
      stream: "foo"
      deliver_new: "true"
      rate_limit: 100
      delete_stream_on_stop: false
      delete_after_ack: false
      priority: 2

  consume: [ "test-1" ]
  • Driver uses NATS JetStream API and is not compatible with non-js API.

  • ✏️ Response API for the NATS, RabbitMQ, SQS and Beanstalk drivers. This means, that you'll be able to respond to a specified in the response queue.
    Limitations:

    • To send a response to the queue maintained by the RR, you should send it as a Job type. There is no limitation for the other queues (tubes, subjects) responses.
    • Driver uses the same endpoint (address) to send the response as specified in the configuration.

v2.5.0-beta.2

11 Oct 17:15
7682e46
Compare
Choose a tag to compare
v2.5.0-beta.2 Pre-release
Pre-release
  • ✏️ Add a new option to the log plugin to configure the line ending. By default, used \n.

New option:

# Logs plugin settings
logs:
    (....)
    # Line ending
    #
    # Default: "\n".
    line_ending: "\n"
http:
  address: 127.0.0.1:55555
  max_request_size: 1024
  access_logs: true <-------- Access Logs ON/OFF
  middleware: []

  pool:
    num_workers: 2
    max_jobs: 0
    allocate_timeout: 60s
    destroy_timeout: 60s
  • ✏️ HTTP middleware to handle X-Sendfile header.
http:
  address: 127.0.0.1:44444
  max_request_size: 1024
  middleware: ["sendfile"] <----- NEW MIDDLEWARE

  pool:
    num_workers: 2
    max_jobs: 0
    allocate_timeout: 60s
    destroy_timeout: 60s
  • ✏️ Service plugin now supports env variables passing to the script/executable/binary/any:
service:
  some_service_1:
    command: "php test_files/loop_env.php"
    process_num: 1
    exec_timeout: 5s # s,m,h (seconds, minutes, hours)
    remain_after_exit: true
    env:  <----------------- NEW
      foo: "BAR"
    restart_sec: 1
  • ✏️ Server plugin can accept scripts (sh, bash, etc) in it's command configuration key:
server:
    command: "./script.sh OR sh script.sh" <--- UPDATED
    relay: "pipes"
    relay_timeout: "20s"

The script should start a worker as the last command. For the pipes, scripts should not contain programs, which can close stdin, stdout or stderr.

🩹 Fixes:

  • 🐛 Fix: grpc plugin fails to handle requests after calling reset.

v2.5.0-beta.1

01 Oct 19:09
0073d60
Compare
Choose a tag to compare
v2.5.0-beta.1 Pre-release
Pre-release

💔 BC:

  • 🔨 Some drivers now use a new config key to handle local configuration. Involved plugins and drivers:
  • plugins: broadcast, kv
  • drivers: memory, redis, memcached, boltdb.

ATTENTION!!!, this is the configuration BC release, please, update your configuration:

Old style:

broadcast:
  default:
    driver: memory
    interval: 1

New style:

broadcast:
  default:
    driver: memory
    config: {} <--------------- NEW
kv:
  memory-rr:
    driver: memory
    config: <--------------- NEW
      interval: 1

kv:
  memcached-rr:
    driver: memcached
    config: <--------------- NEW
      addr:
        - "127.0.0.1:11211"

broadcast:
  default:
    driver: redis
    config: <------------------ NEW
      addrs:
        - "127.0.0.1:6379"

👀 New:

  • ✏️ [BETA] GRPC plugin updated to v2.
  • ✏️ Roadrunner-plugins repository. This is the new home for the roadrunner plugins with documentation, configuration samples, and common problems.
  • ✏️ [BETA] Let's Encrypt support. RR now can obtain an SSL certificate/PK for your domain automatically. Here is the new configuration:
    ssl:
      # Host and port to listen on (eg.: `127.0.0.1:443`).
      #
      # Default: ":443"
      address: "127.0.0.1:443"

      # Use ACME certificates provider (Let's encrypt)
      acme:
        # Directory to use as a certificate/pk, account info storage
        #
        # Optional. Default: rr_cache
        certs_dir: rr_le_certs

        # User email
        #
        # Used to create LE account. Mandatory. Error on empty.
        email: you-email-here@email

        # Alternate port for the http challenge. Challenge traffic should be redirected to this port if overridden.
        #
        # Optional. Default: 80
        alt_http_port: 80,


        # Alternate port for the tls-alpn-01 challenge. Challenge traffic should be redirected to this port if overridden.
        #
        # Optional. Default: 443.
        alt_tlsalpn_port: 443,

        # Challenge types
        #
        # Optional. Default: http-01. Possible values: http-01, tlsalpn-01
        challenge_type: http-01

        # Use production or staging endpoints. NOTE, try to use the staging endpoint (`use_production_endpoint`: `false`) to make sure, that everything works correctly.
        #
        # Optional, but for production should be set to true. Default: false
        use_production_endpoint: true

        # List of your domains to obtain certificates
        #
        # Mandatory. Error on empty.
        domains: [
            "your-cool-domain.here",
            "your-second-domain.here"
        ]
  • ✏️ Add a new options to the service plugin. Service plugin will not use std RR logger as output in the flavor of raw output.

New options:

# Service plugin settings
service:
  some_service_1:
    (....)
    # Console output
    #
    # Default: stderr. Available options: stderr, stdout
    output: "stderr"

    # Endings for the stderr/stdout output
    #
    # Default: "\n". Available options: any.
    line_ending: "\n"

    # Color for regular output
    #
    # Default: none. Available options: white, red, green, yellow, blue, magenta
    color: "green"

    # Color for the process errors
    #
    # Default: none. Available options: white, red, green, yellow, blue, magenta
    err_color: "red"

!!!
Be careful, now, there is no logger plugin dependency for the service plugin. That means, that if you used json output, now,
you need to serialize data on the executable (in the command) side.

🩹 Fixes:

  • 🐛 Fix: local and global configuration parsing.
  • 🐛 Fix: bug with the boltdb-jobs connection left open after RPC close command.
  • 🐛 Fix: close beanstalk connection and release associated resources after pipeline stopped.

📦 Packages:

  • 📦 roadrunner v2.5.0
  • 📦 roadrunner-plugins v2.5.0
  • 📦 roadrunner-temporal v1.0.10
  • 📦 goridge v3.2.2

v2.5.0-alpha.1

20 Sep 07:55
79bd08f
Compare
Choose a tag to compare
v2.5.0-alpha.1 Pre-release
Pre-release

💔 BC:

  • 🔨 Some drivers now use a new config key to handle local configuration. Involved plugins and drivers:
  • plugins: broadcast, kv
  • drivers: memory, redis, memcached, boltdb.

ATTENTION!!!, this is the configuration BC release, please, update your configuration:

Old style:

broadcast:
    default:
        driver: memory
        interval: 1

New style:

broadcast:
    default:
        driver: memory
        config: {} <--------------- NEW
kv:
    memory-rr:
        driver: memory
        config: <--------------- NEW
            interval: 1

kv:
    memcached-rr:
        driver: memcached
        config: <--------------- NEW
            addr:
                - "127.0.0.1:11211"

broadcast:
  default:
    driver: redis
    config: <------------------ NEW
      addrs:
        - "127.0.0.1:6379"

👀 New:

  • ✏️ [BETA] GRPC plugin updated to v2.
  • ✏️ Roadrunner-plugins repository. This is the new home for the roadrunner plugins with documentation, configuration samples, and common problems. Feel free to read new docs for the plugins: docs

🩹 Fixes:

  • 🐛 Fix: local and global configuration parsing

📦 Packages:

  • 📦 Roadrunner v2.5.0
  • 📦 Roadrunner-plugins v2.5.0
  • 📦 Roadrunner-temporal v1.0.10

v2.4.2

12 Sep 20:59
f39fec2
Compare
Choose a tag to compare

🩹 Fixes:

  • 🐛 Fix: bug with the not-idempotent call to the attributes.Init.
  • 🐛 Fix: memory jobs driver behavior. Now memory driver starts consuming automatically if the user consumes the pipeline in the configuration.

📦 Packages:

  • 📦 Update RR to v2.4.1

v2.4.1

08 Sep 10:50
b339c89
Compare
Choose a tag to compare

🩹 Fixes:

  • 🐛 Fix: absent column in the workers -i output.