hyraft-server 0.1.0 → 1.0.0
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 +4 -4
- data/README.md +27 -38
- data/bin/hyr +0 -0
- data/bin/hyr-serve +0 -0
- data/bin/hyraft-server +0 -0
- data/lib/hyraft/server/launcher.rb +27 -19
- data/lib/hyraft/server/middleware/web_logger.rb +2 -0
- data/lib/hyraft/server/version.rb +1 -1
- metadata +4 -31
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 76f9497216ffdc394b1830109b6034c5292ddab9999ff290c702a72836fce550
|
|
4
|
+
data.tar.gz: ec5c5a62baabe8e68a889c6944b0c0ced9be4038e073da54705decc4d240980b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f341f5428e8bede176b16f55370142344bead0d50f0c55d0ece5dd5ec683f0d5eb17fb05344e8d2f1e90dbd93b220c5b3031b6d6b54f4858afb3650b13dd578c
|
|
7
|
+
data.tar.gz: e286b2faf80f4154ea181bebfabd98b6396eca88233b0bfca8d0bedf4705280673ef533027f83ac32557995d5f2ebba53ececf1e8cc00b5bc401924ccd50aa0a
|
data/README.md
CHANGED
|
@@ -6,52 +6,32 @@
|
|
|
6
6
|

|
|
7
7
|

|
|
8
8
|

|
|
9
|
+

|
|
9
10
|
|
|
10
11
|
|
|
11
|
-
</div>
|
|
12
|
-
|
|
13
12
|
|
|
13
|
+
</div>
|
|
14
14
|
|
|
15
|
-
Web server for Hyraft framework
|
|
16
15
|
|
|
17
|
-
Dual-server web stack implementing hexagonal architecture. Supports simultaneous web and API servers across multiple Ruby backends (Puma, Thin, Falcon, Iodine) for the Hyraft platform.
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
Server for Hyraft framework
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
put:
|
|
19
|
+
____________________
|
|
23
20
|
|
|
24
|
-
|
|
25
|
-
gem 'hyraft-server'
|
|
26
|
-
```
|
|
21
|
+
Dual-server web stack implementing hexagonal architecture. Supports simultaneous web and API servers across multiple Ruby backends (Puma, Thin, Falcon, Iodine) for the Hyraft framework.
|
|
27
22
|
|
|
28
|
-
Switch to Thin # Gemfile in your application (Windows / Linux)
|
|
29
|
-
```bash
|
|
30
|
-
gem 'thin'
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Switch to Puma # Gemfile in your application (Windows / Linux)
|
|
34
|
-
```bash
|
|
35
|
-
gem 'puma'
|
|
36
|
-
```
|
|
37
23
|
|
|
24
|
+
## Installation
|
|
38
25
|
|
|
39
|
-
Switch server to Falcon # Gemfile in your application (Linux)
|
|
40
|
-
```bash
|
|
41
|
-
gem 'falcon'
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Switch server to Iodine # Gemfile in your application (Linux)
|
|
45
26
|
```bash
|
|
46
|
-
|
|
47
|
-
|
|
27
|
+
Server options:
|
|
28
|
+
___________________________________________________
|
|
48
29
|
|
|
30
|
+
Use Thin server: gem 'thin' # Windows/Linux
|
|
31
|
+
Use Puma server: gem 'puma' # Windows/Linux
|
|
32
|
+
Use Falcon server: gem 'falcon' # Linux
|
|
33
|
+
Use Iodine server: gem 'iodine' # Linux
|
|
49
34
|
|
|
50
|
-
|
|
51
|
-
Install the gem and add to the application's Gemfile by executing:
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
bundle install
|
|
55
35
|
```
|
|
56
36
|
|
|
57
37
|
|
|
@@ -59,27 +39,33 @@ bundle install
|
|
|
59
39
|
|
|
60
40
|
Command Variants
|
|
61
41
|
```rb
|
|
62
|
-
|
|
42
|
+
_______________________________________________________________________
|
|
43
|
+
|
|
44
|
+
Alias: (or Shortcut)
|
|
63
45
|
|
|
64
46
|
hyr s [server-name] Start web server
|
|
65
47
|
hyr s [server-name] --api Start API server directly
|
|
66
48
|
hyr s-v Show version
|
|
67
49
|
hyr s-h Show this help
|
|
50
|
+
_______________________________________________________________________
|
|
68
51
|
|
|
69
|
-
|
|
52
|
+
Medium Form:
|
|
70
53
|
|
|
71
54
|
hyr-serve [server-name] Start web server
|
|
72
55
|
hyr-serve [server-name] --api Start API server directly
|
|
73
56
|
hyr-serve s-v Show version
|
|
74
57
|
hyr-serve s-h Show this help
|
|
58
|
+
_______________________________________________________________________
|
|
75
59
|
|
|
76
|
-
|
|
60
|
+
Full Command:
|
|
77
61
|
|
|
78
62
|
hyraft-server [server-name] [options] Start web server
|
|
79
63
|
hyraft-server [server-name] --api [options] Start API server directly
|
|
80
64
|
hyraft-server server-version Show version
|
|
81
65
|
hyraft-server server-help Show this help
|
|
82
66
|
|
|
67
|
+
_______________________________________________________________________
|
|
68
|
+
|
|
83
69
|
Examples:
|
|
84
70
|
|
|
85
71
|
hyr s thin # Start web server with Thin
|
|
@@ -90,8 +76,11 @@ hyr s falcon # Start web server with Falcon
|
|
|
90
76
|
hyr-serve thin # Start web server with Thin
|
|
91
77
|
hyraft-server thin # Start web server with Thin
|
|
92
78
|
hyraft-server thin --api # Start API server with Thin
|
|
93
|
-
hyraft-server puma -p
|
|
79
|
+
hyraft-server puma -p 1025 # Start web server on port 1025
|
|
80
|
+
hyraft-server puma --port-api 1126 # Start API server on port 1126
|
|
94
81
|
hyraft-server falcon --http2 # Start with HTTP/2 (Falcon)
|
|
82
|
+
hyraft-server falcon --http3 # Start with HTTP/3 (Falcon)
|
|
83
|
+
_______________________________________________________________________
|
|
95
84
|
|
|
96
85
|
|
|
97
86
|
```
|
|
@@ -101,7 +90,7 @@ hyraft-server falcon --http2 # Start with HTTP/2 (Falcon)
|
|
|
101
90
|
Test Environment
|
|
102
91
|
```rb
|
|
103
92
|
|
|
104
|
-
|
|
93
|
+
Alias: (or Shortcut)
|
|
105
94
|
|
|
106
95
|
APP_ENV=test hyr s [server-name] Start web server (test)
|
|
107
96
|
APP_ENV=test hyr s [server-name] --api Start API server directly (test)
|
|
@@ -124,7 +113,7 @@ APP_ENV=test hyr s falcon
|
|
|
124
113
|
Production Environment
|
|
125
114
|
```rb
|
|
126
115
|
|
|
127
|
-
|
|
116
|
+
Alias: (or Shortcut)
|
|
128
117
|
|
|
129
118
|
APP_ENV=production hyr s [server-name] Start web server (production)
|
|
130
119
|
APP_ENV=production hyr s [server-name] --api Start API server directly (production)
|
data/bin/hyr
CHANGED
|
File without changes
|
data/bin/hyr-serve
CHANGED
|
File without changes
|
data/bin/hyraft-server
CHANGED
|
File without changes
|
|
@@ -13,7 +13,7 @@ module Hyraft
|
|
|
13
13
|
#
|
|
14
14
|
# hyr s thin # Start web server with Thin
|
|
15
15
|
# hyr s thin --api # Start API server with Thin
|
|
16
|
-
# hyraft-server puma -p
|
|
16
|
+
# hyraft-server puma -p 1025 # Start on custom port
|
|
17
17
|
# hyraft-server falcon --http2 # Start with HTTP/2
|
|
18
18
|
#
|
|
19
19
|
# @example Start a web server
|
|
@@ -28,6 +28,9 @@ module Hyraft
|
|
|
28
28
|
COLORS = {
|
|
29
29
|
lime: "\033[92m",
|
|
30
30
|
yellow: "\033[93m",
|
|
31
|
+
light_red: "\033[91m",
|
|
32
|
+
green: "\e[32m",
|
|
33
|
+
red: "\e[31m",
|
|
31
34
|
reset: "\033[0m"
|
|
32
35
|
}
|
|
33
36
|
|
|
@@ -36,8 +39,8 @@ module Hyraft
|
|
|
36
39
|
# @param options [Hash] Configuration options
|
|
37
40
|
# @option options [String] :server Server type (puma, thin, falcon, iodine)
|
|
38
41
|
# @option options [String] :host Host to bind to (default: "localhost")
|
|
39
|
-
# @option options [Integer] :port Web server port (default:
|
|
40
|
-
# @option options [Integer] :port_api API server port (default:
|
|
42
|
+
# @option options [Integer] :port Web server port (default: 1025)
|
|
43
|
+
# @option options [Integer] :port_api API server port (default: 1126)
|
|
41
44
|
# @option options [String] :rack_socket Rack config file for web server
|
|
42
45
|
# @option options [String] :rack_socket_api Rack config file for API server
|
|
43
46
|
# @option options [Boolean] :http2 Enable HTTP/2 (Falcon only)
|
|
@@ -48,15 +51,15 @@ module Hyraft
|
|
|
48
51
|
# Launcher.new
|
|
49
52
|
#
|
|
50
53
|
# @example With custom options
|
|
51
|
-
# Launcher.new(port:
|
|
54
|
+
# Launcher.new(port: 1025, server: 'puma')
|
|
52
55
|
def initialize(options = {})
|
|
53
56
|
@options = {
|
|
54
57
|
server: nil,
|
|
55
58
|
host: "localhost",
|
|
56
|
-
port:
|
|
57
|
-
port_api:
|
|
58
|
-
rack_socket: "
|
|
59
|
-
rack_socket_api: "
|
|
59
|
+
port: 1025,
|
|
60
|
+
port_api: 1126,
|
|
61
|
+
rack_socket: "setup/server/web-server.ru",
|
|
62
|
+
rack_socket_api: "setup/server/api-server.ru",
|
|
60
63
|
http2: false,
|
|
61
64
|
http3: false,
|
|
62
65
|
api: false
|
|
@@ -131,19 +134,19 @@ module Hyraft
|
|
|
131
134
|
#
|
|
132
135
|
# == Command Variants
|
|
133
136
|
#
|
|
134
|
-
#
|
|
137
|
+
# Alias: (or Shortcut)
|
|
135
138
|
# hyr s [server-name] Start web server
|
|
136
139
|
# hyr s [server-name] --api Start API server directly
|
|
137
140
|
# hyr s-v Show version
|
|
138
141
|
# hyr s-h Show this help
|
|
139
142
|
#
|
|
140
|
-
#
|
|
143
|
+
# Medium Form:
|
|
141
144
|
# hyr-serve [server-name] Start web server
|
|
142
145
|
# hyr-serve [server-name] --api Start API server directly
|
|
143
146
|
# hyr-serve s-v Show version
|
|
144
147
|
# hyr-serve s-h Show this help
|
|
145
148
|
#
|
|
146
|
-
#
|
|
149
|
+
# Full Command:
|
|
147
150
|
# hyraft-server [server-name] [options] Start web server
|
|
148
151
|
# hyraft-server [server-name] --api [options] Start API server directly
|
|
149
152
|
# hyraft-server server-version Show version
|
|
@@ -155,8 +158,10 @@ module Hyraft
|
|
|
155
158
|
# hyr-serve thin # Start web server with Thin
|
|
156
159
|
# hyraft-server thin # Start web server with Thin
|
|
157
160
|
# hyraft-server thin --api # Start API server with Thin
|
|
158
|
-
# hyraft-server puma -p
|
|
161
|
+
# hyraft-server puma -p 1025 # Start web server on port 1025
|
|
162
|
+
# hyraft-server puma --port-api 1126 # Start API server on port 1126
|
|
159
163
|
# hyraft-server falcon --http2 # Start with HTTP/2 (Falcon)
|
|
164
|
+
# hyraft-server falcon --http3 # Start with HTTP/3 (Falcon)
|
|
160
165
|
#
|
|
161
166
|
# @return [void]
|
|
162
167
|
def show_usage
|
|
@@ -193,8 +198,8 @@ module Hyraft
|
|
|
193
198
|
puts "#{header_color}Options:#{reset_color}"
|
|
194
199
|
puts " -s, --server SERVER Server (puma, thin, falcon, iodine)"
|
|
195
200
|
puts " -b, --bind HOST Host (default: localhost)"
|
|
196
|
-
puts " -p, --port PORT Port (default:
|
|
197
|
-
puts " --port-api PORT API Port (default:
|
|
201
|
+
puts " -p, --port PORT Port (default: 1025)"
|
|
202
|
+
puts " --port-api PORT API Port (default: 1126)"
|
|
198
203
|
puts " -c, --config FILE Rack config file"
|
|
199
204
|
puts " --config-api FILE API Rack config file"
|
|
200
205
|
puts " --api Enable API server"
|
|
@@ -207,7 +212,7 @@ module Hyraft
|
|
|
207
212
|
puts "#{example_color} hyr-serve thin #{reset_color}# Start web server with Thin - Shortkey"
|
|
208
213
|
puts "#{example_color} hyraft-server thin #{reset_color}# Start web server with Thin"
|
|
209
214
|
puts "#{example_color} hyraft-server thin --api #{reset_color}# Start API server with Thin"
|
|
210
|
-
puts "#{example_color} hyraft-server puma -p
|
|
215
|
+
puts "#{example_color} hyraft-server puma -p 1025 #{reset_color}# Start web server on port 1025"
|
|
211
216
|
puts "#{example_color} hyraft-server falcon --http2 #{reset_color}# Start with HTTP/2 (Falcon)"
|
|
212
217
|
puts "#{example_color} hyraft-server s thin #{reset_color}# Legacy syntax (still works)"
|
|
213
218
|
end
|
|
@@ -241,7 +246,7 @@ module Hyraft
|
|
|
241
246
|
opts.on("-s", "--server SERVER", "Server (puma, thin, falcon, iodine)") { |v| @options[:server] = v }
|
|
242
247
|
opts.on("-b", "--bind HOST", "Host") { |v| @options[:host] = v }
|
|
243
248
|
opts.on("-p", "--port PORT", Integer, "Port") { |v| @options[:port] = v }
|
|
244
|
-
opts.on("--port-api PORT", Integer, "API Port (default:
|
|
249
|
+
opts.on("--port-api PORT", Integer, "API Port (default: 1126)") { |v| @options[:port_api] = v }
|
|
245
250
|
opts.on("-c", "--config FILE", "Rack config file") { |v| @options[:rack_socket] = v }
|
|
246
251
|
opts.on("--config-api FILE", "API Rack config file") { |v| @options[:rack_socket_api] = v }
|
|
247
252
|
opts.on("--api", "Enable API server") { |v| @options[:api] = v }
|
|
@@ -271,7 +276,7 @@ module Hyraft
|
|
|
271
276
|
# @return [void]
|
|
272
277
|
# @!visibility private
|
|
273
278
|
def launch_web_server
|
|
274
|
-
puts "[ WEB ] - Hyraft"
|
|
279
|
+
puts "#{COLORS[:yellow]}[ WEB ] - Hyraft#{COLORS[:reset]}"
|
|
275
280
|
puts "* Using server: #{@options[:server].capitalize}"
|
|
276
281
|
puts "* Listening on #{COLORS[:yellow]}http://#{@options[:host]}:#{@options[:port]}#{COLORS[:reset]}"
|
|
277
282
|
|
|
@@ -302,9 +307,12 @@ module Hyraft
|
|
|
302
307
|
# @return [void]
|
|
303
308
|
# @!visibility private
|
|
304
309
|
def launch_api_server
|
|
305
|
-
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
puts "#{COLORS[:lime]}[ API ] - Hyraft#{COLORS[:reset]}"
|
|
306
314
|
puts "* Using server: #{@options[:server].capitalize}"
|
|
307
|
-
puts "* Listening on #{COLORS[:
|
|
315
|
+
puts "* Listening on #{COLORS[:lime]}http://#{@options[:host]}:#{@options[:port_api]}#{COLORS[:reset]}"
|
|
308
316
|
|
|
309
317
|
case @options[:server]
|
|
310
318
|
when "puma"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hyraft-server
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Demjhon Silver
|
|
@@ -23,34 +23,6 @@ dependencies:
|
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '3.2'
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: rake
|
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
|
29
|
-
requirements:
|
|
30
|
-
- - "~>"
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: '13.3'
|
|
33
|
-
type: :development
|
|
34
|
-
prerelease: false
|
|
35
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
-
requirements:
|
|
37
|
-
- - "~>"
|
|
38
|
-
- !ruby/object:Gem::Version
|
|
39
|
-
version: '13.3'
|
|
40
|
-
- !ruby/object:Gem::Dependency
|
|
41
|
-
name: minitest
|
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
|
43
|
-
requirements:
|
|
44
|
-
- - "~>"
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: '5.26'
|
|
47
|
-
type: :development
|
|
48
|
-
prerelease: false
|
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
-
requirements:
|
|
51
|
-
- - "~>"
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: '5.26'
|
|
54
26
|
description: Dual-server Hyraft framework with hexagonal architecture, supporting
|
|
55
27
|
Puma, Thin, Falcon, and Iodine.
|
|
56
28
|
executables:
|
|
@@ -75,6 +47,7 @@ licenses:
|
|
|
75
47
|
- MIT
|
|
76
48
|
metadata:
|
|
77
49
|
homepage_uri: https://github.com/demjhonsilver/hyraft-server
|
|
50
|
+
documentation_uri: https://www.rubydoc.info/gems/hyraft-server
|
|
78
51
|
source_code_uri: https://github.com/demjhonsilver/hyraft-server/tree/main
|
|
79
52
|
changelog_uri: https://github.com/demjhonsilver/hyraft-server/blob/main/CHANGELOG.md
|
|
80
53
|
rubygems_mfa_required: 'true'
|
|
@@ -85,14 +58,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
85
58
|
requirements:
|
|
86
59
|
- - ">="
|
|
87
60
|
- !ruby/object:Gem::Version
|
|
88
|
-
version:
|
|
61
|
+
version: 4.0.0
|
|
89
62
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
63
|
requirements:
|
|
91
64
|
- - ">="
|
|
92
65
|
- !ruby/object:Gem::Version
|
|
93
66
|
version: '0'
|
|
94
67
|
requirements: []
|
|
95
|
-
rubygems_version:
|
|
68
|
+
rubygems_version: 4.0.3
|
|
96
69
|
specification_version: 4
|
|
97
70
|
summary: Web server for Hyraft framework
|
|
98
71
|
test_files: []
|