wampproto 0.1.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.
Files changed (110) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +39 -0
  4. data/CHANGELOG.md +5 -0
  5. data/CODE_OF_CONDUCT.md +84 -0
  6. data/LICENSE +22 -0
  7. data/README.md +35 -0
  8. data/Rakefile +12 -0
  9. data/Steepfile +33 -0
  10. data/lib/wampproto/acceptor/authenticator.rb +14 -0
  11. data/lib/wampproto/acceptor/request.rb +58 -0
  12. data/lib/wampproto/acceptor/response.rb +19 -0
  13. data/lib/wampproto/acceptor.rb +183 -0
  14. data/lib/wampproto/auth/anonymous.rb +14 -0
  15. data/lib/wampproto/auth/base.rb +20 -0
  16. data/lib/wampproto/auth/cra.rb +84 -0
  17. data/lib/wampproto/auth/cryptosign.rb +86 -0
  18. data/lib/wampproto/auth/helpers.rb +25 -0
  19. data/lib/wampproto/auth/ticket.rb +27 -0
  20. data/lib/wampproto/auth.rb +14 -0
  21. data/lib/wampproto/broker.rb +155 -0
  22. data/lib/wampproto/dealer.rb +143 -0
  23. data/lib/wampproto/id_generator.rb +23 -0
  24. data/lib/wampproto/joiner.rb +78 -0
  25. data/lib/wampproto/message/abort.rb +32 -0
  26. data/lib/wampproto/message/authenticate.rb +25 -0
  27. data/lib/wampproto/message/base.rb +30 -0
  28. data/lib/wampproto/message/call.rb +33 -0
  29. data/lib/wampproto/message/challenge.rb +25 -0
  30. data/lib/wampproto/message/error.rb +27 -0
  31. data/lib/wampproto/message/event.rb +33 -0
  32. data/lib/wampproto/message/goodbye.rb +25 -0
  33. data/lib/wampproto/message/hello.rb +64 -0
  34. data/lib/wampproto/message/invocation.rb +33 -0
  35. data/lib/wampproto/message/publish.rb +33 -0
  36. data/lib/wampproto/message/published.rb +25 -0
  37. data/lib/wampproto/message/register.rb +26 -0
  38. data/lib/wampproto/message/registered.rb +25 -0
  39. data/lib/wampproto/message/result.rb +32 -0
  40. data/lib/wampproto/message/subscribe.rb +26 -0
  41. data/lib/wampproto/message/subscribed.rb +25 -0
  42. data/lib/wampproto/message/unregister.rb +25 -0
  43. data/lib/wampproto/message/unregistered.rb +24 -0
  44. data/lib/wampproto/message/unsubscribe.rb +25 -0
  45. data/lib/wampproto/message/unsubscribed.rb +24 -0
  46. data/lib/wampproto/message/welcome.rb +41 -0
  47. data/lib/wampproto/message/yield.rb +32 -0
  48. data/lib/wampproto/message.rb +108 -0
  49. data/lib/wampproto/message_with_recipient.rb +13 -0
  50. data/lib/wampproto/serializer/cbor.rb +18 -0
  51. data/lib/wampproto/serializer/json.rb +18 -0
  52. data/lib/wampproto/serializer/msgpack.rb +18 -0
  53. data/lib/wampproto/serializer.rb +5 -0
  54. data/lib/wampproto/session.rb +144 -0
  55. data/lib/wampproto/session_details.rb +24 -0
  56. data/lib/wampproto/validate.rb +52 -0
  57. data/lib/wampproto/version.rb +5 -0
  58. data/lib/wampproto.rb +32 -0
  59. data/sig/cbor.rbs +5 -0
  60. data/sig/ed25519/signing_key.rbs +7 -0
  61. data/sig/ed25519/verify_key.rbs +7 -0
  62. data/sig/message_pack.rbs +5 -0
  63. data/sig/wampproto/acceptor/authenticator.rbs +9 -0
  64. data/sig/wampproto/acceptor/request.rbs +46 -0
  65. data/sig/wampproto/acceptor/response.rbs +25 -0
  66. data/sig/wampproto/acceptor.rbs +86 -0
  67. data/sig/wampproto/auth/anonymous.rbs +13 -0
  68. data/sig/wampproto/auth/base.rbs +25 -0
  69. data/sig/wampproto/auth/cra.rbs +34 -0
  70. data/sig/wampproto/auth/cryptosign.rbs +38 -0
  71. data/sig/wampproto/auth/helpers.rbs +16 -0
  72. data/sig/wampproto/auth/ticket.rbs +21 -0
  73. data/sig/wampproto/broker.rbs +48 -0
  74. data/sig/wampproto/dealer.rbs +49 -0
  75. data/sig/wampproto/id_generator.rbs +17 -0
  76. data/sig/wampproto/joiner.rbs +43 -0
  77. data/sig/wampproto/message/abort.rbs +31 -0
  78. data/sig/wampproto/message/authenticate.rbs +20 -0
  79. data/sig/wampproto/message/base.rbs +14 -0
  80. data/sig/wampproto/message/call.rbs +34 -0
  81. data/sig/wampproto/message/challenge.rbs +20 -0
  82. data/sig/wampproto/message/error.rbs +28 -0
  83. data/sig/wampproto/message/event.rbs +34 -0
  84. data/sig/wampproto/message/goodbye.rbs +21 -0
  85. data/sig/wampproto/message/hello.rbs +39 -0
  86. data/sig/wampproto/message/invocation.rbs +34 -0
  87. data/sig/wampproto/message/publish.rbs +32 -0
  88. data/sig/wampproto/message/published.rbs +20 -0
  89. data/sig/wampproto/message/register.rbs +24 -0
  90. data/sig/wampproto/message/registered.rbs +20 -0
  91. data/sig/wampproto/message/result.rbs +32 -0
  92. data/sig/wampproto/message/subscribe.rbs +24 -0
  93. data/sig/wampproto/message/subscribed.rbs +20 -0
  94. data/sig/wampproto/message/unregister.rbs +20 -0
  95. data/sig/wampproto/message/unregistered.rbs +16 -0
  96. data/sig/wampproto/message/unsubscribe.rbs +20 -0
  97. data/sig/wampproto/message/unsubscribed.rbs +16 -0
  98. data/sig/wampproto/message/welcome.rbs +36 -0
  99. data/sig/wampproto/message/yield.rbs +30 -0
  100. data/sig/wampproto/message.rbs +59 -0
  101. data/sig/wampproto/message_with_recipient.rbs +15 -0
  102. data/sig/wampproto/serializer/cbor.rbs +10 -0
  103. data/sig/wampproto/serializer/json.rbs +11 -0
  104. data/sig/wampproto/serializer/msgpack.rbs +11 -0
  105. data/sig/wampproto/session.rbs +43 -0
  106. data/sig/wampproto/session_details.rbs +25 -0
  107. data/sig/wampproto/validate.rbs +18 -0
  108. data/sig/wampproto.rbs +17 -0
  109. data/wampproto.gemspec +39 -0
  110. metadata +196 -0
@@ -0,0 +1,32 @@
1
+ module Wampproto
2
+ module Message
3
+ # wamp call message
4
+ class Result < Base
5
+ @request_id: Integer
6
+
7
+ @details: Hash[Symbol, untyped]
8
+
9
+ @args: Array[untyped]
10
+
11
+ @kwargs: Hash[Symbol, untyped]
12
+
13
+ @payload: Array[untyped]
14
+
15
+ attr_reader request_id: Integer
16
+
17
+ attr_reader details: Hash[Symbol, untyped]
18
+
19
+ attr_reader procedure: String
20
+
21
+ attr_reader args: Array[untyped]
22
+
23
+ attr_reader kwargs: Hash[Symbol, untyped]
24
+
25
+ def initialize: (Integer request_id, Hash[Symbol, untyped] details, *Array[untyped] args, **Hash[Symbol, untyped] kwargs) -> void
26
+
27
+ def marshal: () -> Array[untyped]
28
+
29
+ def self.parse: (Array[untyped] wamp_message) -> Result
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,24 @@
1
+ module Wampproto
2
+ module Message
3
+ # abort message
4
+ class Subscribe < Base
5
+ @request_id: Integer
6
+
7
+ @options: Hash[Symbol, untyped]
8
+
9
+ @topic: String
10
+
11
+ attr_reader request_id: Integer
12
+
13
+ attr_reader options: Hash[Symbol, untyped]
14
+
15
+ attr_reader topic: String
16
+
17
+ def initialize: (Integer request_id, Hash[Symbol, untyped] options, String topic) -> void
18
+
19
+ def marshal: () -> ::Array[untyped]
20
+
21
+ def self.parse: (Array[untyped] wamp_message) -> Subscribe
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ module Wampproto
2
+ module Message
3
+ # abort message
4
+ class Subscribed
5
+ @request_id: Integer
6
+
7
+ @subscription_id: Integer
8
+
9
+ attr_reader request_id: Integer
10
+
11
+ attr_reader subscription_id: Integer
12
+
13
+ def initialize: (Integer request_id, Integer subscription_id) -> void
14
+
15
+ def marshal: () -> ::Array[untyped]
16
+
17
+ def self.parse: (Array[untyped] wamp_message) -> Subscribed
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ module Wampproto
2
+ module Message
3
+ # unregister message
4
+ class Unregister < Base
5
+ @request_id: Integer
6
+
7
+ @registration_id: Integer
8
+
9
+ attr_reader request_id: Integer
10
+
11
+ attr_reader registration_id: Integer
12
+
13
+ def initialize: (Integer request_id, Integer registration_id) -> void
14
+
15
+ def marshal: () -> ::Array[untyped]
16
+
17
+ def self.parse: (Array[untyped] wamp_message) -> Unregister
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ module Wampproto
2
+ module Message
3
+ # unregistered message
4
+ class Unregistered < Base
5
+ @request_id: Integer
6
+
7
+ attr_reader request_id: Integer
8
+
9
+ def initialize: (Integer request_id) -> void
10
+
11
+ def marshal: () -> ::Array[untyped]
12
+
13
+ def self.parse: (Array[untyped] wamp_message) -> Unregistered
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,20 @@
1
+ module Wampproto
2
+ module Message
3
+ # abort message
4
+ class Unsubscribe < Base
5
+ @request_id: Integer
6
+
7
+ @subscription_id: Integer
8
+
9
+ attr_reader request_id: Integer
10
+
11
+ attr_reader subscription_id: Integer
12
+
13
+ def initialize: (Integer request_id, Integer subscription_id) -> void
14
+
15
+ def marshal: () -> ::Array[untyped]
16
+
17
+ def self.parse: (Array[untyped] wamp_message) -> Unsubscribe
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ module Wampproto
2
+ module Message
3
+ # Unsubscribed message
4
+ class Unsubscribed < Base
5
+ @request_id: Integer
6
+
7
+ attr_reader request_id: Integer
8
+
9
+ def initialize: (Integer request_id) -> void
10
+
11
+ def marshal: () -> ::Array[untyped]
12
+
13
+ def self.parse: (Array[untyped] wamp_message) -> Unsubscribed
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,36 @@
1
+ module Wampproto
2
+ module Message
3
+ # welcome message
4
+ class Welcome < Base
5
+ @session_id: Integer
6
+
7
+ @details: Hash[Symbol, untyped]
8
+
9
+ @authrole: String
10
+
11
+ @authid: String
12
+
13
+ @authmethod: String
14
+
15
+ @authextra: Hash[Symbol, untyped]
16
+
17
+ attr_reader session_id: Integer
18
+
19
+ attr_reader details: Hash[Symbol, untyped]
20
+
21
+ def initialize: (Integer session_id, ?::Hash[Symbol, untyped] details) -> void
22
+
23
+ def marshal: () -> ::Array[untyped]
24
+
25
+ def authrole: () -> String
26
+
27
+ def authid: () -> String
28
+
29
+ def authmethod: () -> String
30
+
31
+ def authextra: () -> (Hash[Symbol, untyped] | nil)
32
+
33
+ def self.parse: (Array[untyped] wamp_message) -> Welcome
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,30 @@
1
+ module Wampproto
2
+ module Message
3
+ # yield message
4
+ class Yield < Base
5
+ @request_id: Integer
6
+
7
+ @options: Hash[Symbol, untyped]
8
+
9
+ @args: Array[untyped]
10
+
11
+ @kwargs: Hash[Symbol, untyped]
12
+
13
+ @payload: Array[untyped]
14
+
15
+ attr_reader request_id: Integer
16
+
17
+ attr_reader options: Hash[Symbol, untyped]
18
+
19
+ attr_reader args: Array[untyped]
20
+
21
+ attr_reader kwargs: Hash[Symbol, untyped]
22
+
23
+ def initialize: (Integer request_id, Hash[Symbol, untyped] options, *Array[untyped] args, **Hash[Symbol, untyped] kwargs) -> void
24
+
25
+ def marshal: () -> Array[untyped]
26
+
27
+ def self.parse: (Array[untyped] wamp_message) -> Yield
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,59 @@
1
+ module Wampproto
2
+ # message root
3
+ module Message
4
+ module Type
5
+ HELLO: 1
6
+
7
+ WELCOME: 2
8
+
9
+ ABORT: 3
10
+
11
+ CHALLENGE: 4
12
+
13
+ AUTHENTICATE: 5
14
+
15
+ GOODBYE: 6
16
+
17
+ ERROR: 8
18
+
19
+ PUBLISH: 16
20
+
21
+ PUBLISHED: 17
22
+
23
+ SUBSCRIBE: 32
24
+
25
+ SUBSCRIBED: 33
26
+
27
+ UNSUBSCRIBE: 34
28
+
29
+ UNSUBSCRIBED: 35
30
+
31
+ EVENT: 36
32
+
33
+ CALL: 48
34
+
35
+ CANCEL: 49
36
+
37
+ RESULT: 50
38
+
39
+ REGISTER: 64
40
+
41
+ REGISTERED: 65
42
+
43
+ UNREGISTER: 66
44
+
45
+ UNREGISTERED: 67
46
+
47
+ INVOCATION: 68
48
+
49
+ INTERRUPT: 69
50
+
51
+ YIELD: 70
52
+ end
53
+
54
+ HANDLER: ::Hash[Integer, singleton(Message::Base)]
55
+
56
+ def self.resolve: (Array[untyped] wamp_message) -> Message::Base
57
+ end
58
+ end
59
+
@@ -0,0 +1,15 @@
1
+ module Wampproto
2
+ # handler class for dealer and broker responses
3
+ class MessageWithRecipient
4
+ @message: untyped
5
+
6
+ @recipient: Integer
7
+
8
+ attr_reader message: untyped
9
+
10
+ attr_reader recipient: Integer
11
+
12
+ def initialize: (untyped message, Integer recipient) -> void
13
+ end
14
+ end
15
+
@@ -0,0 +1,10 @@
1
+ module Wampproto
2
+ module Serializer
3
+ # Add common API for serializer
4
+ class Cbor
5
+ def self.serialize: (Message::Base message) -> Array[untyped]
6
+
7
+ def self.deserialize: (Array[Integer] message) -> Message::Base
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ module Wampproto
2
+ module Serializer
3
+ # Add common API for serializer
4
+ class JSON
5
+ def self.serialize: (Message::Base message) -> String
6
+
7
+ def self.deserialize: (String message) -> Message::Base
8
+ end
9
+ end
10
+ end
11
+
@@ -0,0 +1,11 @@
1
+ module Wampproto
2
+ module Serializer
3
+ # Add common API for serializer
4
+ class Msgpack
5
+ def self.serialize: (Message::Base message) -> Array[untyped]
6
+
7
+ def self.deserialize: (Array[untyped] message) -> Message::Base
8
+ end
9
+ end
10
+ end
11
+
@@ -0,0 +1,43 @@
1
+ module Wampproto
2
+ # Session
3
+ class Session
4
+ type serializerTypes = (singleton(Serializer::JSON) | singleton(Serializer::Msgpack) | singleton(Serializer::Cbor))
5
+
6
+ @serializer: serializerTypes
7
+ @call_requests: Hash[Integer, Integer]
8
+ @register_requests: Hash[Integer, Integer]
9
+ @registrations: Hash[Integer, Integer]
10
+ @invocation_requests: Hash[Integer, Integer]
11
+ @unregister_requests: Hash[Integer, Integer]
12
+ @publish_requests: Hash[Integer, Integer]
13
+ @subscribe_requests: Hash[Integer, Integer]
14
+ @subscriptions: Hash[Integer, Integer]
15
+ @unsubscribe_requests: Hash[Integer, Integer]
16
+
17
+ attr_reader serializer: serializerTypes
18
+ attr_reader call_requests: Hash[Integer, Integer]
19
+ attr_reader register_requests: Hash[Integer, Integer]
20
+ attr_reader registrations: Hash[Integer, Integer]
21
+ attr_reader invocation_requests: Hash[Integer, Integer]
22
+ attr_reader unregister_requests: Hash[Integer, Integer]
23
+ attr_reader publish_requests: Hash[Integer, Integer]
24
+ attr_reader subscribe_requests: Hash[Integer, Integer]
25
+ attr_reader subscriptions: Hash[Integer, Integer]
26
+ attr_reader unsubscribe_requests: Hash[Integer, Integer]
27
+
28
+ def initialize: (?serializerTypes serializer) -> void
29
+
30
+ ACCESSORS: ::Array[:call_requests | :register_requests | :registrations | :invocation_requests | :unregister_requests | :publish_requests | :subscribe_requests | :subscriptions | :unsubscribe_requests]
31
+
32
+ def send_message: (Message::Base msg) -> untyped
33
+
34
+ def receive: (untyped data) -> untyped
35
+
36
+ def receive_message: (Message::Base msg) -> untyped
37
+
38
+ private
39
+
40
+ def init_state: () -> untyped
41
+ end
42
+ end
43
+
@@ -0,0 +1,25 @@
1
+ module Wampproto
2
+ # Session Details
3
+ class SessionDetails
4
+ @session_id: Integer
5
+
6
+ @realm: String
7
+
8
+ @authid: String
9
+
10
+ @authrole: String
11
+
12
+ attr_reader session_id: Integer
13
+
14
+ attr_reader realm: String
15
+
16
+ attr_reader authid: String
17
+
18
+ attr_reader authrole: String
19
+
20
+ def initialize: (Integer session_id, String realm, String authid, String authrole) -> void
21
+
22
+ def ==: (SessionDetails other) -> bool
23
+ end
24
+ end
25
+
@@ -0,0 +1,18 @@
1
+ module Wampproto
2
+ # validation
3
+ class Validate
4
+ def self.int!: (String name, Integer value) -> Integer
5
+
6
+ def self.string!: (String name, String value) -> String
7
+
8
+ def self.hash!: (String name, Hash[Symbol, untyped] value) -> Hash[Symbol, untyped]
9
+
10
+ def self.array!: (String name, Array[untyped] value) -> Array[untyped]
11
+
12
+ def self.length!: (Array[untyped] array, Integer expected_length) -> Array[untyped]
13
+
14
+ def self.greater_than_equal!: (Array[untyped] array, untyped expected_length) -> Array[untyped]
15
+
16
+ def self.options!: (Hash[Symbol, untyped] options, Array[Symbol] valid_keys) -> Hash[Symbol, untyped]
17
+ end
18
+ end
data/sig/wampproto.rbs ADDED
@@ -0,0 +1,17 @@
1
+ module Wampproto
2
+ VERSION: String
3
+ class Error < StandardError
4
+ end
5
+
6
+ # ProtocolViolation Exception
7
+ class ProtocolViolation < StandardError
8
+ @uri: String
9
+
10
+ attr_reader uri: String
11
+
12
+ def initialize: (?::String msg, ?::String uri) -> void
13
+ end
14
+
15
+ class ValueError < StandardError
16
+ end
17
+ end
data/wampproto.gemspec ADDED
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/wampproto/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "wampproto"
7
+ spec.version = Wampproto::VERSION
8
+ spec.authors = ["Ismail Akram"]
9
+ spec.email = ["rubyonrails3@gmail.com"]
10
+
11
+ spec.summary = "Sans-IO WAMP protocol implementation in Ruby"
12
+ spec.description = "Sans-IO WAMP protocol implementation in Ruby"
13
+ spec.homepage = "https://github.com/xconnio/wampproto.rb"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 3.3.0"
16
+
17
+ # spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
18
+
19
+ spec.metadata["homepage_uri"] = spec.homepage
20
+ spec.metadata["source_code_uri"] = spec.homepage
21
+ spec.metadata["rubygems_mfa_required"] = "true"
22
+ # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
23
+
24
+ # Specify which files should be added to the gem when it is released.
25
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
26
+ spec.files = Dir.chdir(__dir__) do
27
+ `git ls-files -z`.split("\x0").reject do |f|
28
+ (File.expand_path(f) == __FILE__) ||
29
+ f.start_with?(*%w[bin/ test/ spec/ features/ .git .github appveyor Gemfile])
30
+ end
31
+ end
32
+ spec.bindir = "exe"
33
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
34
+ spec.require_paths = ["lib"]
35
+
36
+ spec.add_dependency "cbor", "~> 0.5.9.8"
37
+ spec.add_dependency "ed25519", "~> 1.3"
38
+ spec.add_dependency "msgpack", "~> 1.7.2"
39
+ end
metadata ADDED
@@ -0,0 +1,196 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wampproto
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Ismail Akram
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-05-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: cbor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.5.9.8
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.5.9.8
27
+ - !ruby/object:Gem::Dependency
28
+ name: ed25519
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: msgpack
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.7.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.7.2
55
+ description: Sans-IO WAMP protocol implementation in Ruby
56
+ email:
57
+ - rubyonrails3@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".rspec"
63
+ - ".rubocop.yml"
64
+ - CHANGELOG.md
65
+ - CODE_OF_CONDUCT.md
66
+ - LICENSE
67
+ - README.md
68
+ - Rakefile
69
+ - Steepfile
70
+ - lib/wampproto.rb
71
+ - lib/wampproto/acceptor.rb
72
+ - lib/wampproto/acceptor/authenticator.rb
73
+ - lib/wampproto/acceptor/request.rb
74
+ - lib/wampproto/acceptor/response.rb
75
+ - lib/wampproto/auth.rb
76
+ - lib/wampproto/auth/anonymous.rb
77
+ - lib/wampproto/auth/base.rb
78
+ - lib/wampproto/auth/cra.rb
79
+ - lib/wampproto/auth/cryptosign.rb
80
+ - lib/wampproto/auth/helpers.rb
81
+ - lib/wampproto/auth/ticket.rb
82
+ - lib/wampproto/broker.rb
83
+ - lib/wampproto/dealer.rb
84
+ - lib/wampproto/id_generator.rb
85
+ - lib/wampproto/joiner.rb
86
+ - lib/wampproto/message.rb
87
+ - lib/wampproto/message/abort.rb
88
+ - lib/wampproto/message/authenticate.rb
89
+ - lib/wampproto/message/base.rb
90
+ - lib/wampproto/message/call.rb
91
+ - lib/wampproto/message/challenge.rb
92
+ - lib/wampproto/message/error.rb
93
+ - lib/wampproto/message/event.rb
94
+ - lib/wampproto/message/goodbye.rb
95
+ - lib/wampproto/message/hello.rb
96
+ - lib/wampproto/message/invocation.rb
97
+ - lib/wampproto/message/publish.rb
98
+ - lib/wampproto/message/published.rb
99
+ - lib/wampproto/message/register.rb
100
+ - lib/wampproto/message/registered.rb
101
+ - lib/wampproto/message/result.rb
102
+ - lib/wampproto/message/subscribe.rb
103
+ - lib/wampproto/message/subscribed.rb
104
+ - lib/wampproto/message/unregister.rb
105
+ - lib/wampproto/message/unregistered.rb
106
+ - lib/wampproto/message/unsubscribe.rb
107
+ - lib/wampproto/message/unsubscribed.rb
108
+ - lib/wampproto/message/welcome.rb
109
+ - lib/wampproto/message/yield.rb
110
+ - lib/wampproto/message_with_recipient.rb
111
+ - lib/wampproto/serializer.rb
112
+ - lib/wampproto/serializer/cbor.rb
113
+ - lib/wampproto/serializer/json.rb
114
+ - lib/wampproto/serializer/msgpack.rb
115
+ - lib/wampproto/session.rb
116
+ - lib/wampproto/session_details.rb
117
+ - lib/wampproto/validate.rb
118
+ - lib/wampproto/version.rb
119
+ - sig/cbor.rbs
120
+ - sig/ed25519/signing_key.rbs
121
+ - sig/ed25519/verify_key.rbs
122
+ - sig/message_pack.rbs
123
+ - sig/wampproto.rbs
124
+ - sig/wampproto/acceptor.rbs
125
+ - sig/wampproto/acceptor/authenticator.rbs
126
+ - sig/wampproto/acceptor/request.rbs
127
+ - sig/wampproto/acceptor/response.rbs
128
+ - sig/wampproto/auth/anonymous.rbs
129
+ - sig/wampproto/auth/base.rbs
130
+ - sig/wampproto/auth/cra.rbs
131
+ - sig/wampproto/auth/cryptosign.rbs
132
+ - sig/wampproto/auth/helpers.rbs
133
+ - sig/wampproto/auth/ticket.rbs
134
+ - sig/wampproto/broker.rbs
135
+ - sig/wampproto/dealer.rbs
136
+ - sig/wampproto/id_generator.rbs
137
+ - sig/wampproto/joiner.rbs
138
+ - sig/wampproto/message.rbs
139
+ - sig/wampproto/message/abort.rbs
140
+ - sig/wampproto/message/authenticate.rbs
141
+ - sig/wampproto/message/base.rbs
142
+ - sig/wampproto/message/call.rbs
143
+ - sig/wampproto/message/challenge.rbs
144
+ - sig/wampproto/message/error.rbs
145
+ - sig/wampproto/message/event.rbs
146
+ - sig/wampproto/message/goodbye.rbs
147
+ - sig/wampproto/message/hello.rbs
148
+ - sig/wampproto/message/invocation.rbs
149
+ - sig/wampproto/message/publish.rbs
150
+ - sig/wampproto/message/published.rbs
151
+ - sig/wampproto/message/register.rbs
152
+ - sig/wampproto/message/registered.rbs
153
+ - sig/wampproto/message/result.rbs
154
+ - sig/wampproto/message/subscribe.rbs
155
+ - sig/wampproto/message/subscribed.rbs
156
+ - sig/wampproto/message/unregister.rbs
157
+ - sig/wampproto/message/unregistered.rbs
158
+ - sig/wampproto/message/unsubscribe.rbs
159
+ - sig/wampproto/message/unsubscribed.rbs
160
+ - sig/wampproto/message/welcome.rbs
161
+ - sig/wampproto/message/yield.rbs
162
+ - sig/wampproto/message_with_recipient.rbs
163
+ - sig/wampproto/serializer/cbor.rbs
164
+ - sig/wampproto/serializer/json.rbs
165
+ - sig/wampproto/serializer/msgpack.rbs
166
+ - sig/wampproto/session.rbs
167
+ - sig/wampproto/session_details.rbs
168
+ - sig/wampproto/validate.rbs
169
+ - wampproto.gemspec
170
+ homepage: https://github.com/xconnio/wampproto.rb
171
+ licenses:
172
+ - MIT
173
+ metadata:
174
+ homepage_uri: https://github.com/xconnio/wampproto.rb
175
+ source_code_uri: https://github.com/xconnio/wampproto.rb
176
+ rubygems_mfa_required: 'true'
177
+ post_install_message:
178
+ rdoc_options: []
179
+ require_paths:
180
+ - lib
181
+ required_ruby_version: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: 3.3.0
186
+ required_rubygems_version: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ requirements: []
192
+ rubygems_version: 3.3.27
193
+ signing_key:
194
+ specification_version: 4
195
+ summary: Sans-IO WAMP protocol implementation in Ruby
196
+ test_files: []