We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents 81ff64f + 80b0a7f commit 6384d9aCopy full SHA for 6384d9a
frameworks/Ruby/sinatra-sequel/Gemfile
@@ -4,23 +4,28 @@ gem 'json', '~> 2.8'
4
gem 'sequel', '~> 5.0'
5
gem 'sinatra', '~> 4.0', :require=>'sinatra/base'
6
7
-group :mysql do
+group :mysql, optional: true do
8
gem 'mysql2', '~> 0.5', :platforms=>[:ruby, :mswin]
9
end
10
11
-group :postgresql do
+group :postgresql, optional: true do
12
gem 'pg', '~> 1.5', :platforms=>[:ruby, :mswin]
13
gem 'sequel_pg', '~> 1.6', :platforms=>:ruby, :require=>false
14
15
16
-group :passenger do
+
17
+group :iodine, optional: true do
18
+ gem 'iodine', '~> 0.7', platforms: [:ruby, :mswin], require: false
19
+end
20
21
+group :passenger, optional: true do
22
gem 'passenger', '~> 6.0', platforms: [:ruby, :mswin], require: false
23
24
-group :puma do
25
+group :puma, optional: true do
26
gem 'puma', '~> 6.4', require: false
27
28
-group :unicorn do
29
+group :unicorn, optional: true do
30
gem 'unicorn', '~> 6.1', platforms: [:ruby, :mswin], require: false
31
frameworks/Ruby/sinatra-sequel/Gemfile.lock
@@ -3,15 +3,16 @@ GEM
3
specs:
base64 (0.2.0)
bigdecimal (3.1.8)
+ iodine (0.7.58)
json (2.8.2)
kgio (2.11.4)
mustermann (3.0.3)
ruby2_keywords (~> 0.0.1)
mysql2 (0.5.6)
nio4r (2.7.4)
- passenger (6.0.23)
+ passenger (6.0.24)
rack (>= 1.6.13)
- rackup
+ rackup (>= 2.0.0)
rake (>= 12.3.3)
pg (1.5.8)
puma (6.5.0)
@@ -22,9 +23,8 @@ GEM
rack (>= 3.0.0, < 4)
rack-session (2.0.0)
rack (>= 3.0.0)
- rackup (2.1.0)
+ rackup (2.2.1)
rack (>= 3)
- webrick (~> 1.8)
raindrops (0.20.1)
rake (13.2.1)
ruby2_keywords (0.0.5)
@@ -43,13 +43,13 @@ GEM
43
unicorn (6.1.0)
44
kgio (~> 2.6)
45
raindrops (~> 0.7)
46
- webrick (1.8.2)
47
48
PLATFORMS
49
ruby
50
x86_64-darwin-23
51
52
DEPENDENCIES
+ iodine (~> 0.7)
53
json (~> 2.8)
54
mysql2 (~> 0.5)
55
passenger (~> 6.0)
frameworks/Ruby/sinatra-sequel/benchmark_config.json
@@ -42,6 +42,26 @@
42
"versus": "rack-sequel-postgres-puma-mri",
"notes": ""
},
+ "postgres-iodine-mri": {
+ "db_url": "/db",
+ "query_url": "/queries?queries=",
+ "fortune_url": "/fortunes",
+ "update_url": "/updates?queries=",
+ "port": 8080,
+ "approach": "Realistic",
+ "classification": "Micro",
+ "database": "Postgres",
+ "framework": "sinatra",
+ "language": "Ruby",
56
+ "orm": "Full",
57
+ "platform": "Rack",
58
+ "webserver": "Iodine",
59
+ "os": "Linux",
60
+ "database_os": "Linux",
61
+ "display_name": "sinatra-sequel-postgres-iodine-mri",
62
+ "versus": "rack-sequel-postgres-iodine-mri",
63
+ "notes": ""
64
+ },
65
"postgres-passenger-mri": {
66
"db_url": "/db",
67
"query_url": "/queries?queries=",
frameworks/Ruby/sinatra-sequel/boot.rb
@@ -16,8 +16,8 @@
'puma'
elsif defined?(Unicorn)
'unicorn'
- elsif defined?(Agoo)
- 'agoo'
+ elsif defined?(Iodine)
+ 'iodine'
Bundler.require(:default) # Load core modules
@@ -39,7 +39,7 @@ def connect(dbtype)
39
elsif defined?(Puma) && (threads = Puma.cli_config.options.fetch(:max_threads)) > 1
40
opts[:max_connections] = (2 * Math.log(threads)).floor
41
opts[:pool_timeout] = 10
- else
+ elsif defined?(Unicorn) || defined?(Passenger)
Sequel.single_threaded = true
frameworks/Ruby/sinatra-sequel/sinatra-sequel-postgres-iodine-mri.dockerfile
@@ -0,0 +1,20 @@
1
+FROM ruby:3.4
2
+ENV RUBY_YJIT_ENABLE=1
+# Use Jemalloc
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends libjemalloc2
+ENV LD_PRELOAD=libjemalloc.so.2
+ADD ./ /sinatra-sequel
+WORKDIR /sinatra-sequel
+ENV BUNDLE_WITH=postgresql:iodine
+RUN bundle install --jobs=4 --gemfile=/sinatra-sequel/Gemfile
+ENV DBTYPE=postgresql
+EXPOSE 8080
+CMD bundle exec iodine -p 8080
frameworks/Ruby/sinatra-sequel/sinatra-sequel-postgres-passenger-mri.dockerfile
@@ -10,7 +10,7 @@ ENV LD_PRELOAD=libjemalloc.so.2
ADD ./ /sinatra-sequel
WORKDIR /sinatra-sequel
-ENV BUNDLE_WITHOUT=mysql:puma:unicorn
+ENV BUNDLE_WITH=postgresql:passenger
RUN bundle install --jobs=4 --gemfile=/sinatra-sequel/Gemfile
# TODO: https://github.com/phusion/passenger/issues/1916
frameworks/Ruby/sinatra-sequel/sinatra-sequel-postgres-unicorn-mri.dockerfile
-ENV BUNDLE_WITHOUT=mysql:passenger:puma
+ENV BUNDLE_WITH=postgresql:unicorn
ENV DBTYPE=postgresql
frameworks/Ruby/sinatra-sequel/sinatra-sequel-postgres.dockerfile
-ENV BUNDLE_WITHOUT=mysql:passenger:unicorn
+ENV BUNDLE_WITH=postgresql:puma
frameworks/Ruby/sinatra-sequel/sinatra-sequel.dockerfile
-ENV BUNDLE_WITHOUT=postgresql:passenger:unicorn
+ENV BUNDLE_WITH=mysql:puma
ENV DBTYPE=mysql
0 commit comments