SaaSHub helps you find the best software and product alternatives Learn more →
Puma Alternatives
Similar projects and alternatives to Puma
-
-
Phusion Passenger
A fast and robust web server and application server for Ruby, Python and Node.js
-
InfluxDB
Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
-
falcon
A high-performance web server for Ruby, supporting HTTP/1, HTTP/2 and TLS. (by socketry)
-
-
-
Iodine
iodine - HTTP / WebSockets Server for Ruby with Pub/Sub support (by boazsegev)
-
-
SonarLint
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
-
-
-
-
-
tokio
A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
-
-
turbo
The speed of a single-page web application without having to write any JavaScript (by hotwired)
-
-
-
-
importmap-rails
Use ESM with importmap to manage modern JavaScript in Rails without transpiling or bundling.
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Puma reviews and mentions
-
Write your own Domain Specific Language in Ruby
That doesn't mean one excludes the other. Gems like Puma use the instance_eval method for their configuration file.
-
puma 6.0 released
Anyway I did it: https://github.com/puma/puma/issues/3003 It's quite more complicated: https://github.com/puma/puma/issues/2999 A fix is in progress: https://github.com/puma/puma/pull/3002
-
Pitchfork: Rack HTTP server for shared-nothing architecture
I'm the author of the original 'refork' feature introduced to Puma a couple years ago [1], that served as an inspiration for this project.
As I understand it, Pitchfork is an implementation of a reforking feature on top of Unicorn, a single-threaded multi-process Rack HTTP server.
The general idea of 'reforking' is that in addition to pre-forking worker processes at initialization time, you re-fork them on an ongoing basis, in order to optimize copy-on-write efficiency across processes, especially for memory allocations that might happen after initialization. The Pitchfork author mentions sharing YJIT machine code as a particularly important use-case [2], one that has become relevant in recent Ruby releases.
I never saw much interest in the concept when I originally introduced the reforking feature to Puma, and it remained a kind of interesting experiment that never saw much production uptake. I'm thrilled that Shopify is iterating on the concept through this project and I hope the technique will continue to be refined and developed, and see broader adoption as a result.
Puma is a multi-thread, multi-process Rack HTTP server that implements a request buffer.
By comparison, Unicorn (the project upon which Pitchfork is based) is a single-thread, multi-process Rack HTTP server that does not buffer requests, so it's only designed for fast clients (or it needs to be paired with a proxy like Nginx to handle slow clients).
The narrower design of Unicorn results in a simpler, less-flexible potentially more efficient architecture.
The reforking feature that Pitchfork introduces to Unicorn was originally implemented in Puma [1], though they're controlled differently and the underlying implementations are entirely different.
[1] https://github.com/puma/puma/blob/master/5.0-Upgrade.md#fork...
-
Minitest, we've been doing it wrong?
The new test convention is now "test/**/test_*.rb" instead of "test/**/*_test.rb". For example, Puma and Minitest are popular repositories using this naming pattern.
-
Active_storage first time need help!
# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main" gem "rails", "~> 7.0.4" # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails] gem "sprockets-rails" # Use sqlite3 as the database for Active Record gem "sqlite3", "~> 1.4" # Use the Puma web server [https://github.com/puma/puma] gem "puma", "~> 5.0" # Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails] gem "importmap-rails" # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev] gem "turbo-rails" # Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev] gem "stimulus-rails" # Build JSON APIs with ease [https://github.com/rails/jbuilder] gem "jbuilder" # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ] # Reduces boot times through caching; required in config/boot.rb gem "bootsnap", require: false # Use Sass to process CSS # gem "sassc-rails" # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images] # gem "image_processing", "~> 1.2" group :development, :test do # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem gem "debug", platforms: %i[ mri mingw x64_mingw ] end group :development do # Use console on exceptions pages [https://github.com/rails/web-console] gem "web-console" # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler] # gem "rack-mini-profiler" # Speed up commands on slow machines / big apps [https://github.com/rails/spring] # gem "spring" end group :test do # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing] gem "capybara" gem "selenium-webdriver" gem "webdrivers" end
-
Zero traffic yet Puma is still getting pummeled — how to troubleshoot?
Hey, I am the Developer Community Manager at Render. I'm going to check in with support to see if there are any follow-up ideas we could share with you. Just in case this helps: have you tried experimenting with the worker_boot_timeout as mentioned here: https://github.com/puma/puma/issues/2527 because it seems like if increasing that timeout helps, you can narrow down your troubleshooting scope to something you might need to do within the app.
If this is on Render's free tier, perhaps Render is putting the server to sleep causing this issue?
-
Setup ruby/debug with VSCode
If it stops at somewhere in your web server (like puma). Hit continue or F5. This will be resolved in the next 1.6.0 release.
-
A note from our sponsor - #<SponsorshipServiceOld:0x00007f160f32b5a0>
www.saashub.com | 29 Mar 2023
Stats
puma/puma is an open source project licensed under BSD 3-clause "New" or "Revised" License which is an OSI approved license.