JRuby
Puma
JRuby | Puma | |
---|---|---|
24 | 40 | |
3,746 | 7,591 | |
0.0% | 0.2% | |
9.9 | 8.7 | |
about 15 hours ago | 8 days ago | |
Ruby | Ruby | |
GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
JRuby
-
Shoes makes building little graphical programs for Mac, Windows, Linux simple
As someone who has looked at Shoes several times but never dove in, it's confusing how Shoes 4 has been the "preview version" of Shoes for, like, a decade or more. It made me actively avoid getting invested in Shoes 3 (the release promoted on the linked website) because Shoes 4 requires JRuby and I am happy with CRuby (the Ruby interpreter most people think of when they hear "Ruby").
https://github.com/shoes/shoes4/
http://www.rubydoc.info/github/shoes/shoes4
No disrespect to the developers but to me it feels like taking over a GUI toolkit created "to teach programming to everyone" (to quote the Shoes 4 readme) and making it depend upon a super-complicated enterprise-focused Ruby was sort of Missing The Point™ in a huge way.
Heck I couldn't even switch to JRuby if I wanted to because I <3 Ractors and JRuby still lacks CRuby 3.0 feature parity: https://github.com/jruby/jruby/issues/7459
-
JRuby 9.4.2.0 released with many fixes and improvements
__callee__ now properly returns the name under which a method was called, which will be the new name in the case of aliased methods. #2305, #7702
-
JRuby 9.4.0.0 Released, now supporting Ruby 3.1 and Rails 7
Issue tracker: https://github.com/jruby/jruby/issues
-
JRuby 9.3.9.0 Released with stdlib CVE fixes
rdoc has been updated to 6.3.3 to fix all known CVEs. (#7396, #7404)
-
JRuby 9.3.8.0 Released - with support for lightweight fibers!
Altering the visibility of an included module method no longer changes what super method gets called. (#7240, #7343, #7344, #7356)
-
Golang in the JVM
It looks like the readme is copy pasta from jruby: https://github.com/jruby/jruby
-
JRuby 9.3.4.0 released
Homepage: https://www.jruby.org/
- JRuby 9.4 will support Ruby 3.0 and we need your help!
-
Communication Counts – Leading a New Generation of Developers with Chris Mar
Chris: Yeah, that's exactly right. So I was working at Sun at the time. I remember the JRuby guys. I saw them speak at one of the Java conferences, and they came to work for Sun. Just listening to them talk about JRuby...and then a lot of it was obviously about Ruby on Rails at the time. And I was like, wow, this was just mind-blowing the way they talked about it.
-
Befunge GUI by Glimmer (2 for 1: LibUI & SWT)
In fact, I built its GUI twice with two different approaches, one using the up and coming Glimmer DSL for LibUI on CRuby relying on a multi-canvas-grid (LibUI area) approach, and one using the very mature Glimmer DSL for SWT on JRuby by relying on a button-grid approach.
Puma
-
Breaking the 300 barrier
As we use Puma as our webserver for our rails application, I quickly went to Puma's config file which typically resides in config/puma.rb. The config was set as
-
Would you consider Rails as stable nowadays ?
They do! It's in the first section of the readme on the repo:
-
Hosting Rails App on AWS
Start with service with systemd
- Recommended way to implement Puma plugin configuration
-
Could not detect rake tasks
# Use the Puma web server [https://github.com/puma/puma] gem "puma", "~> 5.0" # Build JSON APIs with ease [https://github.com/rails/jbuilder] # gem "jbuilder" gem 'rack-cors' gem "devise" gem "jsonapi-serializer" gem 'devise-jwt' gem 'active_model_serializers' gem 'followability' gem 'dotenv-rails', groups: [:development, :test, :production] gem 'sprockets' # Use Redis adapter to run Action Cable in production # gem "redis", "~> 4.0" # Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis] # gem "kredis" # Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword] # gem "bcrypt", "~> 3.1.7" # 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 Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images] # gem "image_processing", "~> 1.2" # Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible # gem "rack-cors" 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 gem "sqlite3", "~> 1.4" # Speed up commands on slow machines / big apps [https://github.com/rails/spring] # gem "spring" end group :production do gem 'pg' end
-
Dusting off my rails knowledge, need some tips / guidance on rails 7 and production
source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby "3.1.0" # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main" gem "rails", "~> 7.0.4", ">= 7.0.4.2" # 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" gem "mongoid" gem "mongoid-grid_fs" gem 'bootstrap', '~> 5.2.2' #sourced from https://github.com/twbs/bootstrap-rubygem gem 'rack-cors' # 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
-
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.
- Welcome to Puma 6: Sunflower
-
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
What are some alternatives?
truffleruby - A high performance implementation of the Ruby programming language, built on GraalVM.
Thin - A very fast & simple Ruby web server
MRuby - Lightweight Ruby
falcon - A high-performance web server for Ruby, supporting HTTP/1, HTTP/2 and TLS.
Rubinius - The Rubinius Language Platform
Phusion Passenger - A fast and robust web server and application server for Ruby, Python and Node.js
Opal - Ruby ♥︎ JavaScript
Iodine - iodine - HTTP / WebSockets Server for Ruby with Pub/Sub support
Reactrb
Goliath - Goliath is a non-blocking Ruby web server framework
docker-jruby
Unicorn - Unofficial Unicorn Mirror.