anycable-core 1.1.0.rc1 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c11526237ea5ddebe636470d76c0bc736b4033bfa82eb11213768d7907cd9e29
4
- data.tar.gz: c9c14c21b7e05ae5e48683270139a219e65879dc96424886ff4f38d0c5e4e4d6
3
+ metadata.gz: 6c53c6eef6f814614854125b047e654fd9d5d95035df76c3a99b9f6b6567dfad
4
+ data.tar.gz: 4ab82cfb62467ae183e9af67b28ae9627b9ee92efb96890b9042fa78bd147536
5
5
  SHA512:
6
- metadata.gz: 35ddc978f4af9c962dfd08ce3c91d7baaa9396aaaf6305bf0b53c09b9bdebe66d3ee6c574d4c634b76100b853aa1e69256abadd1eb00e15bc28c113a02c02cd4
7
- data.tar.gz: 3e44584b899e7a4041caf345a4a96b6791a52aad83af18f6c59ae11b450446d5bb40d816d917d6791d110c045c894302db9e9668c6f25252269eaf258e5d5231
6
+ metadata.gz: 532a44843ed5220efc7d6c9b8c9eefad351888b0f8cbf5645ca15f4b2be202f615102ee25c5017280b7998f09c97d8f6346611a7c44f4d2b6819a2f1863b11b5
7
+ data.tar.gz: 5b99db45b4795158bda35d0c6fd9c505fddf0b1dd0e28c051e1fe9af901bbef858c731a029500c22ec767d0934e71e0b642ee7c3c70315c69cdab71d2ef2e06f
data/CHANGELOG.md CHANGED
@@ -2,7 +2,27 @@
2
2
 
3
3
  ## master
4
4
 
5
- ## 1.1.0.rc1
5
+ ## 1.1.3 (2021-09-29)
6
+
7
+ - Added support for type coercion from Anyway Config 2.2. ([@palkan][])
8
+
9
+ ## 1.1.2 (2021-09-10) 🤵👰
10
+
11
+ - Improved gRPC server args support. ([@palkan][])
12
+
13
+ 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.
14
+
15
+ ## 1.1.1 (2021-06-05)
16
+
17
+ - Fixed error message when RPC implementation is missing. ([@palkan][])
18
+
19
+ We haven't extracted `anycable-grpc` yet.
20
+
21
+ ## 1.1.0 🚸 (2021-06-01)
22
+
23
+ - No changes since 1.1.0.rc1.
24
+
25
+ ## 1.1.0.rc1 (2021-05-12)
6
26
 
7
27
  - **BREAKING** Move middlewares from gRPC interceptors to custom implementation. ([@palkan][])
8
28
 
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. `anycable-grpc`) or " \
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
@@ -46,7 +46,9 @@ module AnyCable
46
46
  version_check_enabled: true
47
47
  )
48
48
 
49
- alias_method :version_check_enabled?, :version_check_enabled
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
 
@@ -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
- # See https://github.com/grpc/grpc/blob/f526602bff029b8db50a8d57134d72da33d8a752/include/grpc/impl/codegen/grpc_types.h#L292-L315
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: rpc_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
  }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AnyCable
4
- VERSION = "1.1.0.rc1"
4
+ VERSION = "1.1.3"
5
5
  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, ?istate: protoMap) -> void
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, ?istate: protoMap) -> void
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.0.rc1
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - palkan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-12 00:00:00.000000000 Z
11
+ date: 2021-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: anyway_config
@@ -227,11 +227,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
227
227
  version: 2.6.0
228
228
  required_rubygems_version: !ruby/object:Gem::Requirement
229
229
  requirements:
230
- - - ">"
230
+ - - ">="
231
231
  - !ruby/object:Gem::Version
232
- version: 1.3.1
232
+ version: '0'
233
233
  requirements: []
234
- rubygems_version: 3.2.15
234
+ rubygems_version: 3.2.22
235
235
  signing_key:
236
236
  specification_version: 4
237
237
  summary: AnyCable core RPC implementation