gritz-native 0.1.0 → 0.2.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/CHANGELOG.md +5 -0
- data/README.md +1 -1
- data/lib/gritz/native/fork_guard.rb +10 -0
- data/lib/gritz/native/version.rb +1 -1
- data/lib/gritz/native.rb +1 -0
- data/lib/gritz/transport/native.rb +9 -0
- metadata +5 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4e8049bb49561c6146900ca5fdf2f40177d4da3352b488c0c090b834f28a76bd
|
|
4
|
+
data.tar.gz: f55456efb1b318a0079ebf027b77f41d63413ca2abc723319804fe07ee403165
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7a98685d7f3d10fefba9d156e0d5f182aed3a497e3886534e082449629e6420422ef614fbe8e0b0b793ae6ada7cdcd03e357ec58db0bf3826d7627615b32cd09
|
|
7
|
+
data.tar.gz: d5051b7e5a6739eac2d3be2b53316b0def376af8bfbe91c77958c1d554e1e08842d3a6a298f359a735ed736e3310e430e8c842ea00650900af4dd9f3be245173
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -17,7 +17,7 @@ Gritz::Testing::Server.start(controllers: [GreeterController]) do |server|
|
|
|
17
17
|
end
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
The helper opens an ephemeral port and stops the server when the block exits. The
|
|
20
|
+
The helper opens an ephemeral port and stops the server when the block exits. The helper runs a single process. Supervised native servers also support forked workers on Linux. This release uses insecure sockets; use a trusted network or a TLS-terminating proxy. See the [framework documentation](https://github.com/gritzrpc/gritz) for configuration and limitations.
|
|
21
21
|
|
|
22
22
|
## Development
|
|
23
23
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Constructor instrumentation installed without activating a master guard.
|
|
4
|
+
# @api private
|
|
5
|
+
module Gritz::Native::ForkGuard
|
|
6
|
+
[GRPC::Core::Channel, GRPC::Core::Server, GRPC::Core::ChannelCredentials,
|
|
7
|
+
GRPC::Core::ServerCredentials, GRPC::Core::CallCredentials, GRPC::ClientStub, GRPC::RpcServer].each do |klass|
|
|
8
|
+
Gritz::ForkGuard.install(klass)
|
|
9
|
+
end
|
|
10
|
+
end
|
data/lib/gritz/native/version.rb
CHANGED
data/lib/gritz/native.rb
CHANGED
|
@@ -6,6 +6,7 @@ require "google/rpc/status_pb"
|
|
|
6
6
|
require "google/protobuf/any_pb"
|
|
7
7
|
require "google/protobuf/well_known_types"
|
|
8
8
|
require_relative "native/version"
|
|
9
|
+
require_relative "native/fork_guard"
|
|
9
10
|
require_relative "transport/native"
|
|
10
11
|
require_relative "transport/native/call"
|
|
11
12
|
require_relative "transport/native/bridge"
|
|
@@ -10,6 +10,15 @@ module Gritz
|
|
|
10
10
|
class Native
|
|
11
11
|
def self.capabilities = Set[:unary, :client_streaming, :server_streaming, :bidi, :reuseport].freeze
|
|
12
12
|
|
|
13
|
+
def self.prefork
|
|
14
|
+
GRPC.prefork
|
|
15
|
+
rescue RuntimeError => e
|
|
16
|
+
raise "#{e.message}. fork_mode :grpc_fork_support requires GRPC_ENABLE_FORK_SUPPORT=1 before requiring grpc."
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.postfork_parent = GRPC.postfork_parent
|
|
20
|
+
def self.postfork_child = GRPC.postfork_child
|
|
21
|
+
|
|
13
22
|
def initialize(config:, dispatcher:, logger:)
|
|
14
23
|
@config = config
|
|
15
24
|
@dispatcher = dispatcher
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gritz-native
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yudai Takada
|
|
@@ -35,14 +35,14 @@ dependencies:
|
|
|
35
35
|
requirements:
|
|
36
36
|
- - '='
|
|
37
37
|
- !ruby/object:Gem::Version
|
|
38
|
-
version: 0.
|
|
38
|
+
version: 0.2.0
|
|
39
39
|
type: :runtime
|
|
40
40
|
prerelease: false
|
|
41
41
|
version_requirements: !ruby/object:Gem::Requirement
|
|
42
42
|
requirements:
|
|
43
43
|
- - '='
|
|
44
44
|
- !ruby/object:Gem::Version
|
|
45
|
-
version: 0.
|
|
45
|
+
version: 0.2.0
|
|
46
46
|
- !ruby/object:Gem::Dependency
|
|
47
47
|
name: grpc
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -75,6 +75,7 @@ files:
|
|
|
75
75
|
- LICENSE.txt
|
|
76
76
|
- README.md
|
|
77
77
|
- lib/gritz/native.rb
|
|
78
|
+
- lib/gritz/native/fork_guard.rb
|
|
78
79
|
- lib/gritz/native/version.rb
|
|
79
80
|
- lib/gritz/testing/server.rb
|
|
80
81
|
- lib/gritz/transport/native.rb
|
|
@@ -103,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
103
104
|
- !ruby/object:Gem::Version
|
|
104
105
|
version: '0'
|
|
105
106
|
requirements: []
|
|
106
|
-
rubygems_version:
|
|
107
|
+
rubygems_version: 3.6.9
|
|
107
108
|
specification_version: 4
|
|
108
109
|
summary: gRPC C-core transport for Gritz
|
|
109
110
|
test_files: []
|