From a969b758357042bacad9fa4598eb40317eef1f25 Mon Sep 17 00:00:00 2001 From: Petrik Date: Tue, 5 May 2026 14:29:50 +0200 Subject: [PATCH 1/2] [rage] Mark as production Rage uses standard framework configuration. Use Rack::Deflater middleware for gzip. --- frameworks/rage/Dockerfile | 2 +- .../app/controllers/benchmark_controller.rb | 19 +------------------ frameworks/rage/config/application.rb | 1 + frameworks/rage/meta.json | 4 ++-- 4 files changed, 5 insertions(+), 21 deletions(-) diff --git a/frameworks/rage/Dockerfile b/frameworks/rage/Dockerfile index 1fa454e24..33347725b 100644 --- a/frameworks/rage/Dockerfile +++ b/frameworks/rage/Dockerfile @@ -1,7 +1,7 @@ FROM ruby:4.0-slim RUN apt-get update && \ - apt-get install -y --no-install-recommends build-essential libyaml-dev libjemalloc2 && \ + apt-get install -y --no-install-recommends build-essential libpq-dev libyaml-dev libjemalloc2 && \ rm -rf /var/lib/apt/lists/* # Use Jemalloc diff --git a/frameworks/rage/app/controllers/benchmark_controller.rb b/frameworks/rage/app/controllers/benchmark_controller.rb index 671b48e74..f9520c67f 100644 --- a/frameworks/rage/app/controllers/benchmark_controller.rb +++ b/frameworks/rage/app/controllers/benchmark_controller.rb @@ -59,24 +59,7 @@ def json_endpoint items = [] end - result = { items: items, count: items.length } - - if accept_encodings = request.headers['Accept-Encoding'] - types = accept_encodings.split(',').map(&:strip) - if types.include? 'gzip' - sio = StringIO.new - gz = Zlib::GzipWriter.new(sio, 1) - gz.write JSON.generate(result) - gz.close - headers['Content-Encoding'] = 'gzip' - headers['Content-Type'] = 'application/json' - render plain: sio.string - else - render json: result - end - else - render json: result - end + render json: { items: items, count: items.length } end def async_db diff --git a/frameworks/rage/config/application.rb b/frameworks/rage/config/application.rb index bbbf876ee..bbd5a3850 100644 --- a/frameworks/rage/config/application.rb +++ b/frameworks/rage/config/application.rb @@ -8,6 +8,7 @@ Rage.configure do # use this to add settings that are constant across all environments config.public_file_server.enabled = true + config.middleware.use Rack::Deflater # enable gzip end require "rage/setup" diff --git a/frameworks/rage/meta.json b/frameworks/rage/meta.json index 74e98a37d..d17578643 100644 --- a/frameworks/rage/meta.json +++ b/frameworks/rage/meta.json @@ -1,7 +1,7 @@ { "display_name": "rage", "language": "Ruby", - "type": "tuned", + "type": "production", "engine": "iodine", "description": "Rage is a modern Ruby framework designed for non-blocking I/O and simpler infrastructure", "repo": "https://github.com/rage-rb/rage", @@ -19,4 +19,4 @@ "static" ], "maintainers": [] -} \ No newline at end of file +} From 225d9d8fe7a52abb4201a1d701189084528b8ac9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 5 May 2026 18:47:41 +0000 Subject: [PATCH 2/2] Benchmark results: rage json-comp --- site/data/frameworks.json | 2 +- site/data/json-comp-16384.json | 18 ++-- site/data/json-comp-4096.json | 16 ++-- site/data/json-comp-512.json | 18 ++-- site/static/logs/json-comp/16384/rage.log | 95 ++++++++++---------- site/static/logs/json-comp/4096/rage.log | 73 ++++++++-------- site/static/logs/json-comp/512/rage.log | 101 +++++++++++----------- 7 files changed, 163 insertions(+), 160 deletions(-) diff --git a/site/data/frameworks.json b/site/data/frameworks.json index 9e67f5e38..6d69fc995 100644 --- a/site/data/frameworks.json +++ b/site/data/frameworks.json @@ -403,7 +403,7 @@ "dir": "rage", "description": "Rage is a modern Ruby framework designed for non-blocking I/O and simpler infrastructure", "repo": "https://github.com/rage-rb/rage", - "type": "tuned", + "type": "production", "engine": "iodine" }, "rails": { diff --git a/site/data/json-comp-16384.json b/site/data/json-comp-16384.json index 771b4d4ed..d373aab1d 100644 --- a/site/data/json-comp-16384.json +++ b/site/data/json-comp-16384.json @@ -542,19 +542,19 @@ { "framework": "rage", "language": "Ruby", - "rps": 184878, - "avg_latency": "73.47ms", - "p99_latency": "342.90ms", - "cpu": "6770.2%", - "memory": "5.9GiB", + "rps": 164785, + "avg_latency": "84.15ms", + "p99_latency": "269.90ms", + "cpu": "6623.6%", + "memory": "5.8GiB", "connections": 16384, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "300.72MB/s", - "input_bw": "13.75MB/s", - "reconnects": 30463, - "status_2xx": 924393, + "bandwidth": "228.53MB/s", + "input_bw": "12.26MB/s", + "reconnects": 26434, + "status_2xx": 823926, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/json-comp-4096.json b/site/data/json-comp-4096.json index 9a3ebe2c6..8c202d104 100644 --- a/site/data/json-comp-4096.json +++ b/site/data/json-comp-4096.json @@ -542,19 +542,19 @@ { "framework": "rage", "language": "Ruby", - "rps": 209500, - "avg_latency": "18.53ms", - "p99_latency": "44.30ms", - "cpu": "6573.4%", + "rps": 185158, + "avg_latency": "21.18ms", + "p99_latency": "54.70ms", + "cpu": "6364.2%", "memory": "5.6GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "340.80MB/s", - "input_bw": "15.58MB/s", - "reconnects": 39967, - "status_2xx": 1047504, + "bandwidth": "256.96MB/s", + "input_bw": "13.77MB/s", + "reconnects": 35129, + "status_2xx": 925793, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/data/json-comp-512.json b/site/data/json-comp-512.json index 650efeaa9..77c01e871 100644 --- a/site/data/json-comp-512.json +++ b/site/data/json-comp-512.json @@ -542,19 +542,19 @@ { "framework": "rage", "language": "Ruby", - "rps": 220430, - "avg_latency": "2.31ms", - "p99_latency": "9.20ms", - "cpu": "6422.1%", - "memory": "5.7GiB", + "rps": 193676, + "avg_latency": "2.64ms", + "p99_latency": "10.10ms", + "cpu": "6525.1%", + "memory": "5.4GiB", "connections": 512, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "358.68MB/s", - "input_bw": "16.40MB/s", - "reconnects": 43886, - "status_2xx": 1102153, + "bandwidth": "268.73MB/s", + "input_bw": "14.41MB/s", + "reconnects": 38627, + "status_2xx": 968380, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/static/logs/json-comp/16384/rage.log b/site/static/logs/json-comp/16384/rage.log index 16175c927..e26d91ffb 100644 --- a/site/static/logs/json-comp/16384/rage.log +++ b/site/static/logs/json-comp/16384/rage.log @@ -9,6 +9,7 @@ INFO: Starting up Iodine: * Master (root) process: 1. INFO: Server is running 127 workers X 1 thread with facil.io 0.7.4 (epoll) +* Linked to OpenSSL 3.5.5 27 Jan 2026 * Detected capacity: 131056 open file limit * Root pid: 1 * Press ^C to stop @@ -18,47 +19,47 @@ INFO: 13 is running. INFO: 17 is running. INFO: 21 is running. INFO: 25 is running. -INFO: 30 is running. -INFO: 34 is running. -INFO: 40 is running. -INFO: 45 is running. +INFO: 29 is running. +INFO: 33 is running. +INFO: 37 is running. +INFO: 41 is running. +INFO: 46 is running. INFO: 50 is running. -INFO: 61 is running. -INFO: 55 is running. -INFO: 69 is running. -INFO: 73 is running. -INFO: 77 is running. -INFO: 81 is running. -INFO: 85 is running. -INFO: 90 is running. +INFO: 56 is running. +INFO: 65 is running. +INFO: 70 is running. +INFO: 75 is running. +INFO: 80 is running. +INFO: 86 is running. +INFO: 91 is running. INFO: 95 is running. -INFO: 99 is running. -INFO: 104 is running. -INFO: 109 is running. -INFO: 115 is running. -INFO: 120 is running. -INFO: 125 is running. -INFO: 130 is running. +INFO: 100 is running. +INFO: 105 is running. +INFO: 111 is running. +INFO: 116 is running. +INFO: 121 is running. +INFO: 126 is running. +INFO: 131 is running. INFO: 135 is running. INFO: 140 is running. -INFO: 146 is running. -INFO: 151 is running. +INFO: 145 is running. +INFO: 150 is running. INFO: 156 is running. -INFO: 161 is running. +INFO: 160 is running. INFO: 166 is running. INFO: 170 is running. -INFO: 175 is running. -INFO: 181 is running. -INFO: 187 is running. -INFO: 192 is running. +INFO: 176 is running. +INFO: 182 is running. +INFO: 186 is running. +INFO: 191 is running. INFO: 196 is running. INFO: 200 is running. -INFO: 205 is running. +INFO: 206 is running. INFO: 210 is running. -INFO: 216 is running. -INFO: 221 is running. -INFO: 226 is running. -INFO: 231 is running. +INFO: 215 is running. +INFO: 220 is running. +INFO: 225 is running. +INFO: 230 is running. INFO: 236 is running. INFO: 241 is running. INFO: 246 is running. @@ -69,7 +70,7 @@ INFO: 266 is running. INFO: 271 is running. INFO: 276 is running. INFO: 281 is running. -INFO: 285 is running. +INFO: 286 is running. INFO: 291 is running. INFO: 299 is running. INFO: 303 is running. @@ -85,12 +86,12 @@ INFO: 349 is running. INFO: 353 is running. INFO: 357 is running. INFO: 362 is running. -INFO: 367 is running. -INFO: 372 is running. -INFO: 377 is running. -INFO: 381 is running. -INFO: 386 is running. -INFO: 391 is running. +INFO: 366 is running. +INFO: 371 is running. +INFO: 376 is running. +INFO: 382 is running. +INFO: 387 is running. +INFO: 392 is running. INFO: 397 is running. INFO: 402 is running. INFO: 407 is running. @@ -120,23 +121,23 @@ INFO: 522 is running. INFO: 528 is running. INFO: 533 is running. INFO: 537 is running. -INFO: 543 is running. +INFO: 542 is running. INFO: 548 is running. -INFO: 553 is running. -INFO: 558 is running. -INFO: 562 is running. +INFO: 552 is running. +INFO: 557 is running. +INFO: 563 is running. INFO: 568 is running. INFO: 573 is running. -INFO: 579 is running. +INFO: 577 is running. INFO: 583 is running. INFO: 588 is running. -INFO: 593 is running. +INFO: 592 is running. INFO: 598 is running. INFO: 603 is running. -INFO: 613 is running. INFO: 609 is running. +INFO: 613 is running. INFO: 617 is running. INFO: 622 is running. -INFO: 628 is running. +INFO: 627 is running. INFO: 633 is running. -INFO: 637 is running. +INFO: 638 is running. diff --git a/site/static/logs/json-comp/4096/rage.log b/site/static/logs/json-comp/4096/rage.log index ff8e90076..84462affa 100644 --- a/site/static/logs/json-comp/4096/rage.log +++ b/site/static/logs/json-comp/4096/rage.log @@ -9,6 +9,7 @@ INFO: Starting up Iodine: * Master (root) process: 1. INFO: Server is running 127 workers X 1 thread with facil.io 0.7.4 (epoll) +* Linked to OpenSSL 3.5.5 27 Jan 2026 * Detected capacity: 131056 open file limit * Root pid: 1 * Press ^C to stop @@ -25,11 +26,11 @@ INFO: 45 is running. INFO: 50 is running. INFO: 55 is running. INFO: 60 is running. -INFO: 68 is running. +INFO: 69 is running. INFO: 73 is running. INFO: 77 is running. INFO: 81 is running. -INFO: 85 is running. +INFO: 86 is running. INFO: 91 is running. INFO: 96 is running. INFO: 100 is running. @@ -38,28 +39,28 @@ INFO: 111 is running. INFO: 115 is running. INFO: 120 is running. INFO: 125 is running. -INFO: 130 is running. +INFO: 131 is running. INFO: 136 is running. INFO: 141 is running. INFO: 146 is running. -INFO: 151 is running. +INFO: 150 is running. INFO: 155 is running. -INFO: 160 is running. -INFO: 165 is running. +INFO: 161 is running. +INFO: 166 is running. INFO: 171 is running. INFO: 176 is running. INFO: 182 is running. INFO: 187 is running. -INFO: 191 is running. +INFO: 192 is running. INFO: 196 is running. -INFO: 200 is running. +INFO: 201 is running. INFO: 205 is running. INFO: 211 is running. -INFO: 216 is running. -INFO: 221 is running. -INFO: 226 is running. -INFO: 231 is running. -INFO: 236 is running. +INFO: 215 is running. +INFO: 220 is running. +INFO: 225 is running. +INFO: 230 is running. +INFO: 235 is running. INFO: 241 is running. INFO: 246 is running. INFO: 251 is running. @@ -70,16 +71,16 @@ INFO: 271 is running. INFO: 276 is running. INFO: 281 is running. INFO: 286 is running. -INFO: 291 is running. -INFO: 299 is running. -INFO: 303 is running. -INFO: 307 is running. +INFO: 294 is running. +INFO: 298 is running. +INFO: 302 is running. +INFO: 306 is running. INFO: 311 is running. INFO: 316 is running. INFO: 321 is running. INFO: 326 is running. INFO: 331 is running. -INFO: 337 is running. +INFO: 336 is running. INFO: 341 is running. INFO: 349 is running. INFO: 353 is running. @@ -102,41 +103,41 @@ INFO: 432 is running. INFO: 437 is running. INFO: 442 is running. INFO: 447 is running. -INFO: 451 is running. +INFO: 452 is running. INFO: 457 is running. -INFO: 462 is running. +INFO: 461 is running. INFO: 467 is running. INFO: 472 is running. INFO: 477 is running. INFO: 482 is running. INFO: 487 is running. INFO: 492 is running. -INFO: 497 is running. +INFO: 498 is running. INFO: 503 is running. INFO: 508 is running. INFO: 513 is running. -INFO: 517 is running. +INFO: 518 is running. INFO: 523 is running. -INFO: 528 is running. -INFO: 533 is running. +INFO: 527 is running. +INFO: 531 is running. INFO: 537 is running. -INFO: 542 is running. +INFO: 543 is running. +INFO: 547 is running. INFO: 552 is running. -INFO: 548 is running. -INFO: 556 is running. -INFO: 563 is running. +INFO: 557 is running. +INFO: 562 is running. INFO: 567 is running. -INFO: 572 is running. +INFO: 573 is running. INFO: 577 is running. -INFO: 582 is running. +INFO: 583 is running. INFO: 587 is running. INFO: 592 is running. -INFO: 598 is running. -INFO: 602 is running. -INFO: 607 is running. +INFO: 597 is running. +INFO: 603 is running. +INFO: 608 is running. INFO: 612 is running. INFO: 617 is running. -INFO: 623 is running. +INFO: 622 is running. INFO: 628 is running. -INFO: 638 is running. -INFO: 633 is running. +INFO: 632 is running. +INFO: 636 is running. diff --git a/site/static/logs/json-comp/512/rage.log b/site/static/logs/json-comp/512/rage.log index 0e19c32f1..49315c13b 100644 --- a/site/static/logs/json-comp/512/rage.log +++ b/site/static/logs/json-comp/512/rage.log @@ -9,33 +9,34 @@ INFO: Starting up Iodine: * Master (root) process: 1. INFO: Server is running 127 workers X 1 thread with facil.io 0.7.4 (epoll) +* Linked to OpenSSL 3.5.5 27 Jan 2026 * Detected capacity: 131056 open file limit * Root pid: 1 * Press ^C to stop INFO: 9 is running. -INFO: 13 is running. INFO: 17 is running. -INFO: 25 is running. +INFO: 13 is running. INFO: 21 is running. -INFO: 30 is running. -INFO: 35 is running. -INFO: 40 is running. -INFO: 45 is running. +INFO: 29 is running. +INFO: 25 is running. +INFO: 33 is running. +INFO: 37 is running. +INFO: 41 is running. +INFO: 46 is running. INFO: 50 is running. INFO: 56 is running. -INFO: 61 is running. -INFO: 69 is running. -INFO: 73 is running. -INFO: 77 is running. +INFO: 66 is running. +INFO: 71 is running. +INFO: 75 is running. INFO: 81 is running. INFO: 86 is running. INFO: 91 is running. INFO: 96 is running. INFO: 101 is running. -INFO: 106 is running. -INFO: 110 is running. -INFO: 116 is running. +INFO: 105 is running. +INFO: 111 is running. +INFO: 115 is running. INFO: 121 is running. INFO: 126 is running. INFO: 131 is running. @@ -44,8 +45,8 @@ INFO: 141 is running. INFO: 146 is running. INFO: 151 is running. INFO: 156 is running. -INFO: 160 is running. -INFO: 165 is running. +INFO: 161 is running. +INFO: 166 is running. INFO: 170 is running. INFO: 175 is running. INFO: 182 is running. @@ -63,38 +64,38 @@ INFO: 236 is running. INFO: 241 is running. INFO: 246 is running. INFO: 251 is running. -INFO: 255 is running. -INFO: 260 is running. -INFO: 265 is running. -INFO: 270 is running. +INFO: 256 is running. +INFO: 261 is running. +INFO: 266 is running. +INFO: 271 is running. INFO: 276 is running. INFO: 281 is running. INFO: 286 is running. -INFO: 291 is running. -INFO: 299 is running. -INFO: 303 is running. -INFO: 307 is running. +INFO: 294 is running. +INFO: 298 is running. +INFO: 302 is running. +INFO: 306 is running. INFO: 311 is running. INFO: 316 is running. INFO: 321 is running. -INFO: 326 is running. -INFO: 331 is running. -INFO: 336 is running. -INFO: 341 is running. +INFO: 327 is running. +INFO: 332 is running. +INFO: 337 is running. +INFO: 342 is running. INFO: 349 is running. INFO: 353 is running. INFO: 357 is running. -INFO: 362 is running. -INFO: 367 is running. +INFO: 363 is running. INFO: 372 is running. +INFO: 368 is running. INFO: 377 is running. -INFO: 382 is running. +INFO: 383 is running. INFO: 387 is running. -INFO: 392 is running. +INFO: 391 is running. INFO: 397 is running. INFO: 402 is running. -INFO: 408 is running. -INFO: 413 is running. +INFO: 407 is running. +INFO: 412 is running. INFO: 417 is running. INFO: 422 is running. INFO: 427 is running. @@ -108,35 +109,35 @@ INFO: 462 is running. INFO: 467 is running. INFO: 472 is running. INFO: 477 is running. -INFO: 481 is running. -INFO: 487 is running. -INFO: 492 is running. +INFO: 482 is running. +INFO: 488 is running. +INFO: 493 is running. INFO: 497 is running. INFO: 502 is running. INFO: 507 is running. INFO: 512 is running. -INFO: 518 is running. +INFO: 517 is running. INFO: 527 is running. INFO: 522 is running. INFO: 532 is running. INFO: 538 is running. +INFO: 548 is running. INFO: 543 is running. -INFO: 547 is running. -INFO: 553 is running. -INFO: 558 is running. +INFO: 552 is running. INFO: 562 is running. -INFO: 566 is running. +INFO: 556 is running. +INFO: 567 is running. +INFO: 571 is running. +INFO: 582 is running. INFO: 577 is running. -INFO: 572 is running. -INFO: 581 is running. -INFO: 588 is running. +INFO: 587 is running. INFO: 592 is running. -INFO: 597 is running. -INFO: 603 is running. +INFO: 598 is running. +INFO: 602 is running. INFO: 607 is running. -INFO: 617 is running. INFO: 613 is running. -INFO: 623 is running. +INFO: 618 is running. +INFO: 622 is running. INFO: 628 is running. -INFO: 632 is running. -INFO: 638 is running. +INFO: 633 is running. +INFO: 637 is running.