anycable-core 1.1.1 → 1.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 +18 -0
- data/README.md +2 -0
- data/lib/anycable/config.rb +3 -1
- data/lib/anycable/grpc/config.rb +12 -2
- data/lib/anycable/grpc.rb +1 -2
- data/lib/anycable/version.rb +1 -1
- data/lib/anycable.rb +4 -1
- data/sig/anycable/rpc.rbs +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4c85f8eab809e414507ed9e35da7381b9ca2626ad4c9e2e4f84a5ee8dda2d09
|
4
|
+
data.tar.gz: 37edd04f4c524384c989a774f94e7a8ede624f7fe95e3a6f1a864f2c11f03b4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15602cd4712a4a451e41c03035b176d0fc276593852ab93f386e588d297f7a3e7be8284e8feb952fb19b8a0918973edb48c6a9ce2bd0fb8a63a0ceb068c12730
|
7
|
+
data.tar.gz: a8453ffddde915bd88e2c5fd8cad6178194c8ca7ad3193f617157c6a92b5504022d4a11572e7bb61cc9157897857ab00b7dbab609961ee9ad7d9b55321f66ea9
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,24 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## 1.2.0 (2021-12-21) 🎄
|
6
|
+
|
7
|
+
- Drop Ruby 2.6 support.
|
8
|
+
|
9
|
+
## 1.1.4 (2021-11-11)
|
10
|
+
|
11
|
+
- Do not swallow `grpc` missing .so exceptions. ([@palkan][])
|
12
|
+
|
13
|
+
## 1.1.3 (2021-09-29)
|
14
|
+
|
15
|
+
- Added support for type coercion from Anyway Config 2.2. ([@palkan][])
|
16
|
+
|
17
|
+
## 1.1.2 (2021-09-10) 🤵👰
|
18
|
+
|
19
|
+
- Improved gRPC server args support. ([@palkan][])
|
20
|
+
|
21
|
+
Add ability to declare gRPC server args without namespacing (i.e., `"max_connection_age_ms"` instead of `"grpc.max_connection_age_ms"`). That makes it possible to use ENV vars to provide the gRPC configuration.
|
22
|
+
|
5
23
|
## 1.1.1 (2021-06-05)
|
6
24
|
|
7
25
|
- Fixed error message when RPC implementation is missing. ([@palkan][])
|
data/README.md
CHANGED
@@ -12,6 +12,8 @@ AnyCable allows you to use any WebSocket server (written in any language) as a r
|
|
12
12
|
|
13
13
|
AnyCable uses the same protocol as ActionCable, so you can use its [JavaScript client](https://www.npmjs.com/package/actioncable) without any monkey-patching.
|
14
14
|
|
15
|
+
> [AnyCable Pro](https://docs.anycable.io/pro) has been launched 🚀
|
16
|
+
|
15
17
|
<a href="https://evilmartians.com/">
|
16
18
|
<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54"></a>
|
17
19
|
|
data/lib/anycable/config.rb
CHANGED
@@ -46,7 +46,9 @@ module AnyCable
|
|
46
46
|
version_check_enabled: true
|
47
47
|
)
|
48
48
|
|
49
|
-
|
49
|
+
if respond_to?(:coerce_types)
|
50
|
+
coerce_types redis_sentinels: {type: nil, array: true}, debug: :boolean, version_check_enabled: :boolean
|
51
|
+
end
|
50
52
|
|
51
53
|
flag_options :debug
|
52
54
|
|
data/lib/anycable/grpc/config.rb
CHANGED
@@ -8,7 +8,7 @@ AnyCable::Config.attr_config(
|
|
8
8
|
rpc_max_waiting_requests: ::GRPC::RpcServer::DEFAULT_MAX_WAITING_REQUESTS,
|
9
9
|
rpc_poll_period: ::GRPC::RpcServer::DEFAULT_POLL_PERIOD,
|
10
10
|
rpc_pool_keep_alive: ::GRPC::Pool::DEFAULT_KEEP_ALIVE,
|
11
|
-
#
|
11
|
+
# https://github.com/grpc/grpc/blob/f526602bff029b8db50a8d57134d72da33d8a752/include/grpc/impl/codegen/grpc_types.h#L141-L351
|
12
12
|
rpc_server_args: {},
|
13
13
|
log_grpc: false
|
14
14
|
)
|
@@ -33,9 +33,19 @@ module AnyCable
|
|
33
33
|
max_waiting_requests: rpc_max_waiting_requests,
|
34
34
|
poll_period: rpc_poll_period,
|
35
35
|
pool_keep_alive: rpc_pool_keep_alive,
|
36
|
-
server_args:
|
36
|
+
server_args: normalized_grpc_server_args
|
37
37
|
}
|
38
38
|
end
|
39
|
+
|
40
|
+
def normalized_grpc_server_args
|
41
|
+
val = rpc_server_args
|
42
|
+
return {} unless val.is_a?(Hash)
|
43
|
+
|
44
|
+
val.transform_keys do |key|
|
45
|
+
skey = key.to_s
|
46
|
+
skey.start_with?("grpc.") ? skey : "grpc.#{skey}"
|
47
|
+
end
|
48
|
+
end
|
39
49
|
end
|
40
50
|
end
|
41
51
|
end
|
data/lib/anycable/grpc.rb
CHANGED
@@ -16,7 +16,6 @@ AnyCable.server_builder = ->(config) {
|
|
16
16
|
::GRPC.define_singleton_method(:logger) { AnyCable.logger } if config.log_grpc?
|
17
17
|
|
18
18
|
params = config.to_grpc_params
|
19
|
-
params[:host] = config.rpc_host
|
20
19
|
|
21
|
-
AnyCable::GRPC::Server.new(**params)
|
20
|
+
AnyCable::GRPC::Server.new(**params, host: config.rpc_host)
|
22
21
|
}
|
data/lib/anycable/version.rb
CHANGED
data/lib/anycable.rb
CHANGED
@@ -111,5 +111,8 @@ end
|
|
111
111
|
# gRPC is the default for now, so, let's try to load it.
|
112
112
|
begin
|
113
113
|
require "anycable/grpc"
|
114
|
-
rescue LoadError
|
114
|
+
rescue LoadError => e
|
115
|
+
# Re-raise an exception if we failed to load grpc .so files
|
116
|
+
# (e.g., on Alpine Linux)
|
117
|
+
raise if /Error loading shared library/.match?(e.message)
|
115
118
|
end
|
data/sig/anycable/rpc.rbs
CHANGED
@@ -19,13 +19,13 @@ module AnyCable
|
|
19
19
|
attr_accessor url: String
|
20
20
|
attr_accessor headers: protoMap
|
21
21
|
|
22
|
-
def initialize: (?url: String, ?headers: protoMap, ?cstate: protoMap
|
22
|
+
def initialize: (?url: String, ?headers: protoMap, ?cstate: protoMap?, ?istate: protoMap?) -> void
|
23
23
|
end
|
24
24
|
|
25
25
|
class EnvResponse
|
26
26
|
include _WithEnvState
|
27
27
|
|
28
|
-
def initialize: (?cstate: protoMap
|
28
|
+
def initialize: (?cstate: protoMap?, ?istate: protoMap?) -> void
|
29
29
|
end
|
30
30
|
|
31
31
|
interface _ProtoMessage
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: anycable-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- palkan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: anyway_config
|
@@ -224,14 +224,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
224
224
|
requirements:
|
225
225
|
- - ">="
|
226
226
|
- !ruby/object:Gem::Version
|
227
|
-
version: 2.
|
227
|
+
version: 2.7.0
|
228
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
229
229
|
requirements:
|
230
230
|
- - ">="
|
231
231
|
- !ruby/object:Gem::Version
|
232
232
|
version: '0'
|
233
233
|
requirements: []
|
234
|
-
rubygems_version: 3.2.
|
234
|
+
rubygems_version: 3.2.22
|
235
235
|
signing_key:
|
236
236
|
specification_version: 4
|
237
237
|
summary: AnyCable core RPC implementation
|