Skip to content

Releases: rage-rb/rage

v1.22.0

12 Mar 13:47
cde68f1

Choose a tag to compare

This release adds support for Server-Sent Events, allowing you to stream data to clients:

stream = Enumerator.new do |y|
  "Hello, world!".each_char do |ch| 
    sleep 1
    y << ch 
  end
end

render sse: stream  

Check out the https://github.com/rage-rb/datastar-example for an example integration with Datastar.

Also In This Release

New Contributors

Full Changelog: v1.21.1...v1.22.0

v1.21.0

25 Feb 13:49
6394517

Choose a tag to compare

What's Changed

Your coding agent doesn't know Rage yet. v1.21.0 fixes that.

Run rage skills install to give your agent an official skill set for working with Rage applications. It's the fastest way to get started.

Other changes in this release:

Added:

  • RSpec test helpers for Cable apps
  • Support for stream_for/broadcast_to in Cable apps
  • Inline context support for Rage::Logger

Fixed:

  • Log context isolation between intersecting fibers
  • Cable middleware duplicating when mounted in routes

Full Changelog: v1.20.0...v1.21.0

v1.20.0

20 Jan 13:23
62c0b31

Choose a tag to compare

Rage v1.20 continues its observability journey and introduces Rage::Telemetry - a built-in telemetry system that lets developers observe and measure what's happening inside the application.
The first user of Rage::Telemetry is the official OpenTelemetry integration to be released and available in the following weeks.

Other changes include:

  • Add Response#status method for direct status code access
  • Expose metadata inside deferred tasks
  • Introduce middleware system for deferred tasks
  • Ensure compatibility with Rack::Events

Learn more: https://rage-rb.dev/docs/telemetry

v1.19.0

03 Dec 12:17
a762e4e

Choose a tag to compare

Rage v1.19 brings the first wave of observability improvements, starting with enhanced logging capabilities:

  • Global Log Context - Add dynamic data to all log entries in a centralized way
  • External Loggers - Connect Rage.logger directly to external observability platforms
  • Enhanced Deferred Logging - Deferred tasks now have access to complete log context, not just request IDs

Learn more: https://rage-rb.dev/docs/logging

Full Changelog: v1.18.0...v1.19.0

v1.18.0

29 Oct 10:23
d79f112

Choose a tag to compare

What's Changed

Added

Rage now includes a lightweight pub/sub event system for building decoupled, event-driven applications.

Key Features:

  • Define events using Ruby's Data class
  • Subscribe to parent classes or modules to handle multiple related events
  • Run subscribers in the background with automatic retries
  • Visualize event-subscriber relationships

https://rage-rb.dev/docs/event-system

Fixed

Fixed Fiber.await to correctly handle multiple sequential calls.

Full Changelog: v1.17.1...v1.18.0

v1.17.0

20 Aug 21:44
8373f95

Choose a tag to compare

Rage v1.17 introduces Rage::Deferred, an in-process background job queue that offloads long-running tasks from the request pipeline, improving client response times. Key features include:

  • Data Durability: A disk-based write-ahead log ensures task replay after server restarts or crashes.
  • Automatic Retries: Tasks are retried up to 5 times with exponential backoff on failure.
  • Backpressure: Prevents uncontrolled queue growth by blocking new tasks when the queue exceeds a limit.

Rage::Deferred is ideal for tasks like communicating with other services, sending emails, or syncing data. Check out the guide for all the details.

Other Changes

Full Changelog: v1.16.0...v1.17.0

v1.16.0

20 May 17:15
df55698

Choose a tag to compare

What's Changed

Rage v1.16 introduces a new WebSocket protocol - RawWebSocketJson. This protocol enables you to interact with Rage::Cable applications using the native WebSocket object, eliminating the need for the @rails/actioncable dependency.

Other changes:

  • Feature: Added the after_initialize hook by @serhii-sadovskyi in #149
  • [OpenAPI] Correctly handle the key option in associations
  • [OpenAPI] Correctly handle root_key!
  • Correctly parse plaintext responses in RSpec

New Contributors

Full Changelog: v1.15.1...v1.16.0

v1.15.0

02 Apr 17:45
8a8a12e

Choose a tag to compare

What's Changed

With v1.15, Rage introduces OpenAPI Explorer - a tool that allows you to experiment with Rage::OpenAPI without the need to set up a project. You can try out different tags and serializer combinations to see the documentation generated by Rage::OpenAPI.

Additionally, the release includes some new functionality and numerous bug fixes.

Added

  • Enhance the Rage::Request class by @aaoafk
  • [OpenAPI] Support the @param tag

Fixed

  • Fix using Fiber.schedule in console by @lkibbalam
  • Correctly handle regexp origins in Rage::Cors
  • [OpenAPI] Correctly handle trailing slash
  • [OpenAPI] Correctly handle empty shared components
  • [OpenAPI] Explicitly load Prism
  • [OpenAPI] Correctly verify available before actions
  • [OpenAPI] Correctly handle global comments

Shoutouts

Thank you to @RichStone for his idea of the OpenAPI Explorer tool, as well as for his feedback and advice on how to improve Rage::OpenAPI.

New Contributors

Full Changelog: v1.14.0...v1.15.0

v1.14.0

10 Mar 18:03
f2ec2e5

Choose a tag to compare

What's Changed

  • Update app template to include all app rake tasks by @pjb3 in #130
  • Reload code in development based on filesystem updates by @rsamoilov in #132

New Contributors

  • @pjb3 made their first contribution in #130

Full Changelog: v1.13.0...v1.14.0

v1.13.0

12 Feb 19:47
bc8bb2c

Choose a tag to compare

What's Changed

Shoutouts

Special thanks to @p8 for tackling the Ruby 3.4 + Rage bug!

New Contributors

Full Changelog: v1.12.0...v1.13.0