Ruby's actor-model abstraction ('Ruby actor'). Provides parallel execution across CPU cores without thread-safety concerns because object sharing is restricted: unlike threads, Ractors cannot access objects owned by other Ractors. Still marked experimental in Ruby 4.0 (with a softened warning message committed December 11 that removed only the text, not the experimental flag); hoped to stabilize in Ruby 4.1. Common API: Ractor.new { ... } (must take a block), Ractor#send to deliver a message, Ractor.receive inside the block to dequeue, Ractor#take to block on the Ractor's return value, Ractor.yield inside the block to return a value without exiting, and Ractor.select across multiple Ractors to consume results as they complete. Non-shareable objects (e.g. a plain Hash) cannot be closed over by a non-main Ractor; mitigations are passing via send, .freeze, or Ractor.make_shareable. In Louis's cipher-breaking demo, using Ractors alone was initially slower than a single thread; the breakthroughs were giving each Ractor a different starting frequency key and an increasingly aggressive simulated-annealing cooling strategy so the Ractors collectively covered the search space. Audience reports that Ractors block the caller in ways that make them unsuitable for fire-and-forget GUI-background work; Louis worked around this by having Ractors message a main coordinating Ractor. Practical parallelism does not scale to the full core count — on a 10-core machine Louis settled on 7 Ractors because 10 performed worse. Inspiration per audience: the Erlang actor model.