anycable-core 1.1.0 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/README.md +2 -0
- data/lib/anycable/cli.rb +1 -1
- 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 +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b95998ab1b25eb5ffeb6f165857e293efed31041ffadfb9e808db94e5ebcc59c
|
4
|
+
data.tar.gz: 5063f955316e50fafdc2de7d22c339e56fe095fb6457052d0cd84eca7e22896f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36f1a8a58db6ed030f86f9733a41ac3b18a43ac2dc354eab44bb140a6a83dd6c7e4bd64a848ae1a8d601939ad8ae07c5e53a826b05c25c7bdad6a47eb5bd015c
|
7
|
+
data.tar.gz: ff55c0d25b5b93c5c1b5d4d724d0da62c605c1e3b499372af8e0c53552f74ecc7ec0e2900207c2c86f29d89506eae04336dec5bc63f5716be33caeeed8b0d23c
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,26 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## 1.1.4 (2021-11-11)
|
6
|
+
|
7
|
+
- Do not swallow `grpc` missing .so exceptions. ([@palkan][])
|
8
|
+
|
9
|
+
## 1.1.3 (2021-09-29)
|
10
|
+
|
11
|
+
- Added support for type coercion from Anyway Config 2.2. ([@palkan][])
|
12
|
+
|
13
|
+
## 1.1.2 (2021-09-10) 🤵👰
|
14
|
+
|
15
|
+
- Improved gRPC server args support. ([@palkan][])
|
16
|
+
|
17
|
+
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.
|
18
|
+
|
19
|
+
## 1.1.1 (2021-06-05)
|
20
|
+
|
21
|
+
- Fixed error message when RPC implementation is missing. ([@palkan][])
|
22
|
+
|
23
|
+
We haven't extracted `anycable-grpc` yet.
|
24
|
+
|
5
25
|
## 1.1.0 🚸 (2021-06-01)
|
6
26
|
|
7
27
|
- No changes since 1.1.0.rc1.
|
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/cli.rb
CHANGED
@@ -252,7 +252,7 @@ module AnyCable
|
|
252
252
|
return if AnyCable.server_builder
|
253
253
|
|
254
254
|
logger.error "AnyCable server builder must be configured. " \
|
255
|
-
"Make sure you've required a gem (e.g. `
|
255
|
+
"Make sure you've required a gem (e.g. `grpc`) or " \
|
256
256
|
"configured `AnyCable.server_builder` yourself"
|
257
257
|
exit(1)
|
258
258
|
end
|
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.1.
|
4
|
+
version: 1.1.4
|
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-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: anyway_config
|
@@ -231,7 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
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
|