falcon 0.52.2 → 0.52.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0967ef764ac13d234647007c5e209941c431a6f39818a8814936cb6cc0187b26'
4
- data.tar.gz: efa9ede4c4d5f47db5e226df606d65d94d13b2499f12fa206684f902eb35eb6a
3
+ metadata.gz: 0d52ed7de8cbcdb1a7d2841131cd02f0b89165776384ee1637693c774e724ebd
4
+ data.tar.gz: 4cf37f13cce0acbbbba818584e8dc6fe7ef3eb031896eab9105a1cacf9fe6421
5
5
  SHA512:
6
- metadata.gz: 281ea0eb27895d276dcc85b5ace7465de4022047efd86132bd6ec0670be96cc16879a256bdbbd00765f0f45c658b9240dbf4974acce8e3219522eb77e8b4ad6e
7
- data.tar.gz: 636d1d97dfe9313081a922f6fef956a6a9fe7335b8cd203ca6038765c84fe5616fc4e27d7651006bd633fb73c06e98af1c94a558bf290f9ca74ec30e9dc6bbf4
6
+ metadata.gz: 512323cbc344f48366fb68f15b3dfa04d175519ed2e4f45f936ce937469de0ec669d5e59076a7567f688ecc8a8c6b4ab83ea62c21bee1c6842ab0070e2c72740
7
+ data.tar.gz: 2e2291890e67f9ba1ea9c197a44d363c89b48bd0d053a27259cf4b57a27fcfbbde0ce845cdde3ad4c0beb0054bb32d6588eeb15e53867864b6dc3922cb2088b7
checksums.yaml.gz.sig CHANGED
Binary file
@@ -1,6 +1,6 @@
1
1
  # Deployment
2
2
 
3
- This guide explains how to use Falcon in production environments.
3
+ This guide explains how to deploy applications using the Falcon web server. It covers the recommended deployment methods, configuration options, and examples for different environments, including systemd and kubernetes.
4
4
 
5
5
  Falcon can be deployed into production either as a standalone application server, or as a virtual host routing to multiple applications. Both configurations can run behind a load balancer, but `falcon virtual` is designed to be zero-configuration deployment option.
6
6
 
@@ -145,6 +145,50 @@ service hostname do
145
145
  require_relative "config/environment"
146
146
  ~~~
147
147
 
148
+ ### Kubernetes Integration
149
+
150
+ Falcon can be deployed in a Kubernetes cluster using the `falcon host` command. You can use the following example to create a Kubernetes deployment for Falcon:
151
+
152
+ ```yaml
153
+ apiVersion: apps/v1
154
+ kind: Deployment
155
+ metadata:
156
+ name: falcon
157
+ spec:
158
+ replicas: 1
159
+ selector:
160
+ matchLabels:
161
+ app: falcon
162
+ template:
163
+ metadata:
164
+ labels:
165
+ app: falcon
166
+ spec:
167
+ containers:
168
+ - name: my-app
169
+ image: my-app-image:latest
170
+ env:
171
+ - name: NOTIFY_LOG
172
+ value: "/tmp/notify.log"
173
+ ports:
174
+ - containerPort: 9292
175
+ readinessProbe:
176
+ exec:
177
+ command: ["bundle", "exec", "bake", "async:container:notify:log:ready?"]
178
+ initialDelaySeconds: 5
179
+ periodSeconds: 5
180
+ failureThreshold: 12
181
+
182
+ # Assuming you are running Rails and have bound to port 3000:
183
+ livenessProbe:
184
+ httpGet:
185
+ path: /up
186
+ port: 3000
187
+ initialDelaySeconds: 10
188
+ periodSeconds: 10
189
+ failureThreshold: 3
190
+ ```
191
+
148
192
  ## Falcon Virtual
149
193
 
150
194
  Falcon virtual provides a virtual host proxy and HTTP-to-HTTPS redirection for multiple applications. It is designed to be a zero-configuration deployment option, allowing you to run multiple applications on the same server.
@@ -164,3 +208,23 @@ falcon virtual /srv/http/*/falcon.rb
164
208
  By default, it binds to both HTTP and HTTPS ports, and automatically redirects HTTP requests to HTTPS. It also supports TLS SNI for resolving the certificates.
165
209
 
166
210
  See the [docker example](https://github.com/socketry/falcon-virtual-docker-example) for a complete working example.
211
+
212
+ ### systemd Service File
213
+
214
+ You can create a systemd service file to manage the Falcon virtual service. Here is an example of a systemd service file for Falcon:
215
+
216
+ ```ini
217
+ [Unit]
218
+ Description=Falcon Virtual Service
219
+ After=network.target
220
+
221
+ [Service]
222
+ Type=notify
223
+ User=http
224
+ WorkingDirectory=/srv/http
225
+ ExecStart=/usr/local/bin/falcon virtual /srv/http/*/falcon.rb
226
+ Restart=always
227
+
228
+ [Install]
229
+ WantedBy=multi-user.target
230
+ ```
data/context/index.yaml CHANGED
@@ -15,7 +15,9 @@ files:
15
15
  description: This guide explains how to host Rails applications with Falcon.
16
16
  - path: deployment.md
17
17
  title: Deployment
18
- description: This guide explains how to use Falcon in production environments.
18
+ description: This guide explains how to deploy applications using the Falcon web
19
+ server. It covers the recommended deployment methods, configuration options, and
20
+ examples for different environments, including systemd and kubernetes.
19
21
  - path: performance-tuning.md
20
22
  title: Performance Tuning
21
23
  description: This guide explains the performance characteristics of Falcon.
@@ -9,7 +9,7 @@ Falcon supports WebSockets using the [async-websocket gem](https://github.com/so
9
9
  ~~~ruby
10
10
  # config.ru
11
11
 
12
- require "async/websocket/adapter/rack"
12
+ require "async/websocket/adapters/rack"
13
13
 
14
14
  run do |env|
15
15
  Async::WebSocket::Adapters::Rack.open(env, protocols: ['ws']) do |connection|
@@ -64,7 +64,6 @@ module Falcon
64
64
  def environment
65
65
  Async::Service::Environment.new(Falcon::Environment::Server).with(
66
66
  Falcon::Environment::Rackup,
67
-
68
67
  root: Dir.pwd,
69
68
 
70
69
  verbose: self.parent&.verbose?,
@@ -73,7 +73,7 @@ module Falcon
73
73
  merge(:supervisor, name: name, root: @root, &block)
74
74
  )
75
75
  end
76
-
76
+
77
77
  private
78
78
 
79
79
  # Build a new environment with the specified name and the given parents.
@@ -56,10 +56,10 @@ module Falcon
56
56
  # # An endpoint suitable for connecting to the specified hostname.
57
57
  # def host_endpoint(hostname, **options)
58
58
  # endpoint = secure_endpoint(**options)
59
-
59
+ #
60
60
  # url = URI.parse(bind_secure)
61
61
  # url.hostname = hostname
62
-
62
+ #
63
63
  # return Async::HTTP::Endpoint.new(url, hostname: endpoint.hostname)
64
64
  # end
65
65
  end
@@ -4,5 +4,5 @@
4
4
  # Copyright, 2017-2025, by Samuel Williams.
5
5
 
6
6
  module Falcon
7
- VERSION = "0.52.2"
7
+ VERSION = "0.52.4"
8
8
  end
data/license.md CHANGED
@@ -27,6 +27,7 @@ Copyright, 2024, by Stefan Buhrmester.
27
27
  Copyright, 2024, by Ismael Celis.
28
28
  Copyright, 2025, by Pierre Montelle.
29
29
  Copyright, 2025, by Jared Smith.
30
+ Copyright, 2025, by Yoji Shidara.
30
31
 
31
32
  Permission is hereby granted, free of charge, to any person obtaining a copy
32
33
  of this software and associated documentation files (the "Software"), to deal
data/readme.md CHANGED
@@ -33,7 +33,7 @@ Please see the [project documentation](https://socketry.github.io/falcon/) for m
33
33
 
34
34
  - [Rails Integration](https://socketry.github.io/falcon/guides/rails-integration/index) - This guide explains how to host Rails applications with Falcon.
35
35
 
36
- - [Deployment](https://socketry.github.io/falcon/guides/deployment/index) - This guide explains how to use Falcon in production environments.
36
+ - [Deployment](https://socketry.github.io/falcon/guides/deployment/index) - This guide explains how to deploy applications using the Falcon web server. It covers the recommended deployment methods, configuration options, and examples for different environments, including systemd and kubernetes.
37
37
 
38
38
  - [Performance Tuning](https://socketry.github.io/falcon/guides/performance-tuning/index) - This guide explains the performance characteristics of Falcon.
39
39
 
@@ -47,6 +47,10 @@ Please see the [project documentation](https://socketry.github.io/falcon/) for m
47
47
 
48
48
  Please see the [project releases](https://socketry.github.io/falcon/releases/index) for all releases.
49
49
 
50
+ ### v0.52.4
51
+
52
+ - Relax dependency on `async-container-supervisor` to allow `~> 0.6`.
53
+
50
54
  ### v0.52.0
51
55
 
52
56
  - Modernized codebase and dropped support for Ruby v3.1.
@@ -98,13 +102,13 @@ In addition, `falcon serve` provides two new options:
98
102
  The current configuration format uses definitions like this:
99
103
 
100
104
  ``` ruby
101
- rack 'hello.localhost', :self_signed_tls
105
+ rack "hello.localhost", :self_signed_tls
102
106
  ```
103
107
 
104
108
  This changes to:
105
109
 
106
110
  ``` ruby
107
- service 'hello.localhost' do
111
+ service "hello.localhost" do
108
112
  include Falcon::Environment::Rack
109
113
  include Falcon::Environment::SelfSignedTLS
110
114
  end
data/releases.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Releases
2
2
 
3
+ ## v0.52.4
4
+
5
+ - Relax dependency on `async-container-supervisor` to allow `~> 0.6`.
6
+
3
7
  ## v0.52.0
4
8
 
5
9
  - Modernized codebase and dropped support for Ruby v3.1.
@@ -106,13 +110,13 @@ In addition, `falcon serve` provides two new options:
106
110
  The current configuration format uses definitions like this:
107
111
 
108
112
  ``` ruby
109
- rack 'hello.localhost', :self_signed_tls
113
+ rack "hello.localhost", :self_signed_tls
110
114
  ```
111
115
 
112
116
  This changes to:
113
117
 
114
118
  ``` ruby
115
- service 'hello.localhost' do
119
+ service "hello.localhost" do
116
120
  include Falcon::Environment::Rack
117
121
  include Falcon::Environment::SelfSignedTLS
118
122
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: falcon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.52.2
4
+ version: 0.52.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -31,6 +31,7 @@ authors:
31
31
  - Stefan Buhrmester
32
32
  - Tad Thorley
33
33
  - Tasos Latsas
34
+ - Yoji Shidara
34
35
  bindir: bin
35
36
  cert_chain:
36
37
  - |
@@ -98,14 +99,14 @@ dependencies:
98
99
  requirements:
99
100
  - - "~>"
100
101
  - !ruby/object:Gem::Version
101
- version: 0.5.0
102
+ version: '0.6'
102
103
  type: :runtime
103
104
  prerelease: false
104
105
  version_requirements: !ruby/object:Gem::Requirement
105
106
  requirements:
106
107
  - - "~>"
107
108
  - !ruby/object:Gem::Version
108
- version: 0.5.0
109
+ version: '0.6'
109
110
  - !ruby/object:Gem::Dependency
110
111
  name: async-http
111
112
  requirement: !ruby/object:Gem::Requirement
@@ -311,7 +312,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
311
312
  - !ruby/object:Gem::Version
312
313
  version: '0'
313
314
  requirements: []
314
- rubygems_version: 3.6.9
315
+ rubygems_version: 3.7.2
315
316
  specification_version: 4
316
317
  summary: A fast, asynchronous, rack-compatible web server.
317
318
  test_files: []
metadata.gz.sig CHANGED
Binary file