tiny_thrift 1.0.0.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 (90) hide show
  1. checksums.yaml +7 -0
  2. data/README +43 -0
  3. data/benchmark/Benchmark.thrift +24 -0
  4. data/benchmark/benchmark.rb +271 -0
  5. data/benchmark/client.rb +74 -0
  6. data/benchmark/server.rb +82 -0
  7. data/benchmark/thin_server.rb +44 -0
  8. data/ext/binary_protocol_accelerated.c +460 -0
  9. data/ext/binary_protocol_accelerated.h +20 -0
  10. data/ext/bytes.c +36 -0
  11. data/ext/bytes.h +31 -0
  12. data/ext/compact_protocol.c +635 -0
  13. data/ext/compact_protocol.h +20 -0
  14. data/ext/constants.h +96 -0
  15. data/ext/extconf.rb +32 -0
  16. data/ext/macros.h +41 -0
  17. data/ext/memory_buffer.c +134 -0
  18. data/ext/memory_buffer.h +20 -0
  19. data/ext/protocol.c +0 -0
  20. data/ext/protocol.h +0 -0
  21. data/ext/strlcpy.c +41 -0
  22. data/ext/strlcpy.h +34 -0
  23. data/ext/struct.c +688 -0
  24. data/ext/struct.h +25 -0
  25. data/ext/thrift_native.c +195 -0
  26. data/lib/thrift.rb +66 -0
  27. data/lib/thrift/bytes.rb +131 -0
  28. data/lib/thrift/client.rb +62 -0
  29. data/lib/thrift/core_ext.rb +23 -0
  30. data/lib/thrift/core_ext/fixnum.rb +29 -0
  31. data/lib/thrift/exceptions.rb +87 -0
  32. data/lib/thrift/processor.rb +57 -0
  33. data/lib/thrift/protocol/base_protocol.rb +377 -0
  34. data/lib/thrift/protocol/binary_protocol.rb +237 -0
  35. data/lib/thrift/protocol/binary_protocol_accelerated.rb +39 -0
  36. data/lib/thrift/protocol/compact_protocol.rb +434 -0
  37. data/lib/thrift/protocol/json_protocol.rb +769 -0
  38. data/lib/thrift/serializer/deserializer.rb +33 -0
  39. data/lib/thrift/serializer/serializer.rb +34 -0
  40. data/lib/thrift/server/base_server.rb +31 -0
  41. data/lib/thrift/server/mongrel_http_server.rb +60 -0
  42. data/lib/thrift/server/nonblocking_server.rb +305 -0
  43. data/lib/thrift/server/simple_server.rb +43 -0
  44. data/lib/thrift/server/thin_http_server.rb +91 -0
  45. data/lib/thrift/server/thread_pool_server.rb +75 -0
  46. data/lib/thrift/server/threaded_server.rb +47 -0
  47. data/lib/thrift/struct.rb +237 -0
  48. data/lib/thrift/struct_union.rb +192 -0
  49. data/lib/thrift/thrift_native.rb +24 -0
  50. data/lib/thrift/transport/base_server_transport.rb +37 -0
  51. data/lib/thrift/transport/base_transport.rb +109 -0
  52. data/lib/thrift/transport/buffered_transport.rb +114 -0
  53. data/lib/thrift/transport/framed_transport.rb +117 -0
  54. data/lib/thrift/transport/http_client_transport.rb +56 -0
  55. data/lib/thrift/transport/io_stream_transport.rb +39 -0
  56. data/lib/thrift/transport/memory_buffer_transport.rb +125 -0
  57. data/lib/thrift/transport/server_socket.rb +63 -0
  58. data/lib/thrift/transport/socket.rb +139 -0
  59. data/lib/thrift/transport/unix_server_socket.rb +60 -0
  60. data/lib/thrift/transport/unix_socket.rb +40 -0
  61. data/lib/thrift/types.rb +101 -0
  62. data/lib/thrift/union.rb +179 -0
  63. data/lib/tiny_thrift.rb +1 -0
  64. data/spec/ThriftSpec.thrift +183 -0
  65. data/spec/base_protocol_spec.rb +217 -0
  66. data/spec/base_transport_spec.rb +350 -0
  67. data/spec/binary_protocol_accelerated_spec.rb +42 -0
  68. data/spec/binary_protocol_spec.rb +66 -0
  69. data/spec/binary_protocol_spec_shared.rb +455 -0
  70. data/spec/bytes_spec.rb +160 -0
  71. data/spec/client_spec.rb +99 -0
  72. data/spec/compact_protocol_spec.rb +143 -0
  73. data/spec/exception_spec.rb +141 -0
  74. data/spec/http_client_spec.rb +120 -0
  75. data/spec/json_protocol_spec.rb +513 -0
  76. data/spec/nonblocking_server_spec.rb +263 -0
  77. data/spec/processor_spec.rb +80 -0
  78. data/spec/serializer_spec.rb +67 -0
  79. data/spec/server_socket_spec.rb +79 -0
  80. data/spec/server_spec.rb +147 -0
  81. data/spec/socket_spec.rb +61 -0
  82. data/spec/socket_spec_shared.rb +104 -0
  83. data/spec/spec_helper.rb +61 -0
  84. data/spec/struct_nested_containers_spec.rb +191 -0
  85. data/spec/struct_spec.rb +293 -0
  86. data/spec/thin_http_server_spec.rb +141 -0
  87. data/spec/types_spec.rb +115 -0
  88. data/spec/union_spec.rb +203 -0
  89. data/spec/unix_socket_spec.rb +107 -0
  90. metadata +313 -0
@@ -0,0 +1,203 @@
1
+ #
2
+ # Licensed to the Apache Software Foundation (ASF) under one
3
+ # or more contributor license agreements. See the NOTICE file
4
+ # distributed with this work for additional information
5
+ # regarding copyright ownership. The ASF licenses this file
6
+ # to you under the Apache License, Version 2.0 (the
7
+ # "License"); you may not use this file except in compliance
8
+ # with the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing,
13
+ # software distributed under the License is distributed on an
14
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ # KIND, either express or implied. See the License for the
16
+ # specific language governing permissions and limitations
17
+ # under the License.
18
+ #
19
+
20
+ require 'spec_helper'
21
+
22
+ describe 'Union' do
23
+
24
+ describe Thrift::Union do
25
+ it "should return nil value in unset union" do
26
+ union = SpecNamespace::My_union.new
27
+ union.get_set_field.should == nil
28
+ union.get_value.should == nil
29
+ end
30
+
31
+ it "should set a field and be accessible through get_value and the named field accessor" do
32
+ union = SpecNamespace::My_union.new
33
+ union.integer32 = 25
34
+ union.get_set_field.should == :integer32
35
+ union.get_value.should == 25
36
+ union.integer32.should == 25
37
+ end
38
+
39
+ it "should work correctly when instantiated with static field constructors" do
40
+ union = SpecNamespace::My_union.integer32(5)
41
+ union.get_set_field.should == :integer32
42
+ union.integer32.should == 5
43
+ end
44
+
45
+ it "should raise for wrong set field" do
46
+ union = SpecNamespace::My_union.new
47
+ union.integer32 = 25
48
+ lambda { union.some_characters }.should raise_error(RuntimeError, "some_characters is not union's set field.")
49
+ end
50
+
51
+ it "should not be equal to nil" do
52
+ union = SpecNamespace::My_union.new
53
+ union.should_not == nil
54
+ end
55
+
56
+ it "should not equate two different unions, i32 vs. string" do
57
+ union = SpecNamespace::My_union.new(:integer32, 25)
58
+ other_union = SpecNamespace::My_union.new(:some_characters, "blah!")
59
+ union.should_not == other_union
60
+ end
61
+
62
+ it "should properly reset setfield and setvalue" do
63
+ union = SpecNamespace::My_union.new(:integer32, 25)
64
+ union.get_set_field.should == :integer32
65
+ union.some_characters = "blah!"
66
+ union.get_set_field.should == :some_characters
67
+ union.get_value.should == "blah!"
68
+ lambda { union.integer32 }.should raise_error(RuntimeError, "integer32 is not union's set field.")
69
+ end
70
+
71
+ it "should not equate two different unions with different values" do
72
+ union = SpecNamespace::My_union.new(:integer32, 25)
73
+ other_union = SpecNamespace::My_union.new(:integer32, 400)
74
+ union.should_not == other_union
75
+ end
76
+
77
+ it "should not equate two different unions with different fields" do
78
+ union = SpecNamespace::My_union.new(:integer32, 25)
79
+ other_union = SpecNamespace::My_union.new(:other_i32, 25)
80
+ union.should_not == other_union
81
+ end
82
+
83
+ it "should inspect properly" do
84
+ union = SpecNamespace::My_union.new(:integer32, 25)
85
+ union.inspect.should == "<SpecNamespace::My_union integer32: 25>"
86
+ end
87
+
88
+ it "should not allow setting with instance_variable_set" do
89
+ union = SpecNamespace::My_union.new(:integer32, 27)
90
+ union.instance_variable_set(:@some_characters, "hallo!")
91
+ union.get_set_field.should == :integer32
92
+ union.get_value.should == 27
93
+ lambda { union.some_characters }.should raise_error(RuntimeError, "some_characters is not union's set field.")
94
+ end
95
+
96
+ it "should serialize to binary correctly" do
97
+ trans = Thrift::MemoryBufferTransport.new
98
+ proto = Thrift::BinaryProtocol.new(trans)
99
+
100
+ union = SpecNamespace::My_union.new(:integer32, 25)
101
+ union.write(proto)
102
+
103
+ other_union = SpecNamespace::My_union.new(:integer32, 25)
104
+ other_union.read(proto)
105
+ other_union.should == union
106
+ end
107
+
108
+ it "should serialize to json correctly" do
109
+ trans = Thrift::MemoryBufferTransport.new
110
+ proto = Thrift::JsonProtocol.new(trans)
111
+
112
+ union = SpecNamespace::My_union.new(:integer32, 25)
113
+ union.write(proto)
114
+
115
+ other_union = SpecNamespace::My_union.new(:integer32, 25)
116
+ other_union.read(proto)
117
+ other_union.should == union
118
+ end
119
+
120
+ it "should raise when validating unset union" do
121
+ union = SpecNamespace::My_union.new
122
+ lambda { union.validate }.should raise_error(StandardError, "Union fields are not set.")
123
+
124
+ other_union = SpecNamespace::My_union.new(:integer32, 1)
125
+ lambda { other_union.validate }.should_not raise_error(StandardError, "Union fields are not set.")
126
+ end
127
+
128
+ it "should validate an enum field properly" do
129
+ union = SpecNamespace::TestUnion.new(:enum_field, 3)
130
+ union.get_set_field.should == :enum_field
131
+ lambda { union.validate }.should raise_error(Thrift::ProtocolException, "Invalid value of field enum_field!")
132
+
133
+ other_union = SpecNamespace::TestUnion.new(:enum_field, 1)
134
+ lambda { other_union.validate }.should_not raise_error(Thrift::ProtocolException, "Invalid value of field enum_field!")
135
+ end
136
+
137
+ it "should properly serialize and match structs with a union" do
138
+ union = SpecNamespace::My_union.new(:integer32, 26)
139
+ swu = SpecNamespace::Struct_with_union.new(:fun_union => union)
140
+
141
+ trans = Thrift::MemoryBufferTransport.new
142
+ proto = Thrift::CompactProtocol.new(trans)
143
+
144
+ swu.write(proto)
145
+
146
+ other_union = SpecNamespace::My_union.new(:some_characters, "hello there")
147
+ swu2 = SpecNamespace::Struct_with_union.new(:fun_union => other_union)
148
+
149
+ swu2.should_not == swu
150
+
151
+ swu2.read(proto)
152
+ swu2.should == swu
153
+ end
154
+
155
+ it "should support old style constructor" do
156
+ union = SpecNamespace::My_union.new(:integer32 => 26)
157
+ union.get_set_field.should == :integer32
158
+ union.get_value.should == 26
159
+ end
160
+
161
+ it "should not throw an error when inspected and unset" do
162
+ lambda{SpecNamespace::TestUnion.new().inspect}.should_not raise_error
163
+ end
164
+
165
+ it "should print enum value name when inspected" do
166
+ SpecNamespace::My_union.new(:some_enum => SpecNamespace::SomeEnum::ONE).inspect.should == "<SpecNamespace::My_union some_enum: ONE (0)>"
167
+
168
+ SpecNamespace::My_union.new(:my_map => {SpecNamespace::SomeEnum::ONE => [SpecNamespace::SomeEnum::TWO]}).inspect.should == "<SpecNamespace::My_union my_map: {ONE (0): [TWO (1)]}>"
169
+ end
170
+
171
+ it "should offer field? methods" do
172
+ SpecNamespace::My_union.new.some_enum?.should be_false
173
+ SpecNamespace::My_union.new(:some_enum => SpecNamespace::SomeEnum::ONE).some_enum?.should be_true
174
+ SpecNamespace::My_union.new(:im_true => false).im_true?.should be_true
175
+ SpecNamespace::My_union.new(:im_true => true).im_true?.should be_true
176
+ end
177
+
178
+ it "should pretty print binary fields" do
179
+ SpecNamespace::TestUnion.new(:binary_field => "\001\002\003").inspect.should == "<SpecNamespace::TestUnion binary_field: 010203>"
180
+ end
181
+
182
+ it "should be comparable" do
183
+ relationships = [
184
+ [0, -1, -1, -1],
185
+ [1, 0, -1, -1],
186
+ [1, 1, 0, -1],
187
+ [1, 1, 1, 0]]
188
+
189
+ objs = [
190
+ SpecNamespace::TestUnion.new(:string_field, "blah"),
191
+ SpecNamespace::TestUnion.new(:string_field, "blahblah"),
192
+ SpecNamespace::TestUnion.new(:i32_field, 1),
193
+ SpecNamespace::TestUnion.new()]
194
+
195
+ for y in 0..3
196
+ for x in 0..3
197
+ # puts "#{objs[y].inspect} <=> #{objs[x].inspect} should == #{relationships[y][x]}"
198
+ (objs[y] <=> objs[x]).should == relationships[y][x]
199
+ end
200
+ end
201
+ end
202
+ end
203
+ end
@@ -0,0 +1,107 @@
1
+ #
2
+ # Licensed to the Apache Software Foundation (ASF) under one
3
+ # or more contributor license agreements. See the NOTICE file
4
+ # distributed with this work for additional information
5
+ # regarding copyright ownership. The ASF licenses this file
6
+ # to you under the Apache License, Version 2.0 (the
7
+ # "License"); you may not use this file except in compliance
8
+ # with the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing,
13
+ # software distributed under the License is distributed on an
14
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ # KIND, either express or implied. See the License for the
16
+ # specific language governing permissions and limitations
17
+ # under the License.
18
+ #
19
+
20
+ require 'spec_helper'
21
+ require File.expand_path("#{File.dirname(__FILE__)}/socket_spec_shared")
22
+
23
+ describe 'UNIXSocket' do
24
+
25
+ describe Thrift::UNIXSocket do
26
+ before(:each) do
27
+ @path = '/tmp/thrift_spec_socket'
28
+ @socket = Thrift::UNIXSocket.new(@path)
29
+ @handle = mock("Handle", :closed? => false)
30
+ @handle.stub!(:close)
31
+ ::UNIXSocket.stub!(:new).and_return(@handle)
32
+ end
33
+
34
+ it_should_behave_like "a socket"
35
+
36
+ it "should raise a TransportException when it cannot open a socket" do
37
+ ::UNIXSocket.should_receive(:new).and_raise(StandardError)
38
+ lambda { @socket.open }.should raise_error(Thrift::TransportException) { |e| e.type.should == Thrift::TransportException::NOT_OPEN }
39
+ end
40
+
41
+ it "should accept an optional timeout" do
42
+ ::UNIXSocket.stub!(:new)
43
+ Thrift::UNIXSocket.new(@path, 5).timeout.should == 5
44
+ end
45
+ end
46
+
47
+ describe Thrift::UNIXServerSocket do
48
+ before(:each) do
49
+ @path = '/tmp/thrift_spec_socket'
50
+ @socket = Thrift::UNIXServerSocket.new(@path)
51
+ end
52
+
53
+ it "should create a handle when calling listen" do
54
+ UNIXServer.should_receive(:new).with(@path)
55
+ @socket.listen
56
+ end
57
+
58
+ it "should create a Thrift::UNIXSocket to wrap accepted sockets" do
59
+ handle = mock("UNIXServer")
60
+ UNIXServer.should_receive(:new).with(@path).and_return(handle)
61
+ @socket.listen
62
+ sock = mock("sock")
63
+ handle.should_receive(:accept).and_return(sock)
64
+ trans = mock("UNIXSocket")
65
+ Thrift::UNIXSocket.should_receive(:new).and_return(trans)
66
+ trans.should_receive(:handle=).with(sock)
67
+ @socket.accept.should == trans
68
+ end
69
+
70
+ it "should close the handle when closed" do
71
+ handle = mock("UNIXServer", :closed? => false)
72
+ UNIXServer.should_receive(:new).with(@path).and_return(handle)
73
+ @socket.listen
74
+ handle.should_receive(:close)
75
+ File.stub!(:delete)
76
+ @socket.close
77
+ end
78
+
79
+ it "should delete the socket when closed" do
80
+ handle = mock("UNIXServer", :closed? => false)
81
+ UNIXServer.should_receive(:new).with(@path).and_return(handle)
82
+ @socket.listen
83
+ handle.stub!(:close)
84
+ File.should_receive(:delete).with(@path)
85
+ @socket.close
86
+ end
87
+
88
+ it "should return nil when accepting if there is no handle" do
89
+ @socket.accept.should be_nil
90
+ end
91
+
92
+ it "should return true for closed? when appropriate" do
93
+ handle = mock("UNIXServer", :closed? => false)
94
+ UNIXServer.stub!(:new).and_return(handle)
95
+ File.stub!(:delete)
96
+ @socket.listen
97
+ @socket.should_not be_closed
98
+ handle.stub!(:close)
99
+ @socket.close
100
+ @socket.should be_closed
101
+ @socket.listen
102
+ @socket.should_not be_closed
103
+ handle.stub!(:closed?).and_return(true)
104
+ @socket.should be_closed
105
+ end
106
+ end
107
+ end
metadata ADDED
@@ -0,0 +1,313 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tiny_thrift
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Thrift Developers
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.10.0
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.10.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rack
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.5.2
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.5.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: rack-test
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.6.2
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.6.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: thin
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.5.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.5.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Ruby bindings for the Apache Thrift RPC system
98
+ email:
99
+ - dev@thrift.apache.org
100
+ executables: []
101
+ extensions:
102
+ - ext/extconf.rb
103
+ extra_rdoc_files:
104
+ - README
105
+ - ext/binary_protocol_accelerated.c
106
+ - ext/bytes.c
107
+ - ext/compact_protocol.c
108
+ - ext/memory_buffer.c
109
+ - ext/protocol.c
110
+ - ext/strlcpy.c
111
+ - ext/struct.c
112
+ - ext/thrift_native.c
113
+ - ext/binary_protocol_accelerated.h
114
+ - ext/bytes.h
115
+ - ext/compact_protocol.h
116
+ - ext/constants.h
117
+ - ext/macros.h
118
+ - ext/memory_buffer.h
119
+ - ext/protocol.h
120
+ - ext/strlcpy.h
121
+ - ext/struct.h
122
+ - ext/extconf.rb
123
+ - lib/thrift/bytes.rb
124
+ - lib/thrift/client.rb
125
+ - lib/thrift/core_ext/fixnum.rb
126
+ - lib/thrift/core_ext.rb
127
+ - lib/thrift/exceptions.rb
128
+ - lib/thrift/processor.rb
129
+ - lib/thrift/protocol/base_protocol.rb
130
+ - lib/thrift/protocol/binary_protocol.rb
131
+ - lib/thrift/protocol/binary_protocol_accelerated.rb
132
+ - lib/thrift/protocol/compact_protocol.rb
133
+ - lib/thrift/protocol/json_protocol.rb
134
+ - lib/thrift/serializer/deserializer.rb
135
+ - lib/thrift/serializer/serializer.rb
136
+ - lib/thrift/server/base_server.rb
137
+ - lib/thrift/server/mongrel_http_server.rb
138
+ - lib/thrift/server/nonblocking_server.rb
139
+ - lib/thrift/server/simple_server.rb
140
+ - lib/thrift/server/thin_http_server.rb
141
+ - lib/thrift/server/thread_pool_server.rb
142
+ - lib/thrift/server/threaded_server.rb
143
+ - lib/thrift/struct.rb
144
+ - lib/thrift/struct_union.rb
145
+ - lib/thrift/thrift_native.rb
146
+ - lib/thrift/transport/base_server_transport.rb
147
+ - lib/thrift/transport/base_transport.rb
148
+ - lib/thrift/transport/buffered_transport.rb
149
+ - lib/thrift/transport/framed_transport.rb
150
+ - lib/thrift/transport/http_client_transport.rb
151
+ - lib/thrift/transport/io_stream_transport.rb
152
+ - lib/thrift/transport/memory_buffer_transport.rb
153
+ - lib/thrift/transport/server_socket.rb
154
+ - lib/thrift/transport/socket.rb
155
+ - lib/thrift/transport/unix_server_socket.rb
156
+ - lib/thrift/transport/unix_socket.rb
157
+ - lib/thrift/types.rb
158
+ - lib/thrift/union.rb
159
+ - lib/thrift.rb
160
+ - lib/tiny_thrift.rb
161
+ files:
162
+ - README
163
+ - benchmark/Benchmark.thrift
164
+ - benchmark/benchmark.rb
165
+ - benchmark/client.rb
166
+ - benchmark/server.rb
167
+ - benchmark/thin_server.rb
168
+ - ext/binary_protocol_accelerated.c
169
+ - ext/binary_protocol_accelerated.h
170
+ - ext/bytes.c
171
+ - ext/bytes.h
172
+ - ext/compact_protocol.c
173
+ - ext/compact_protocol.h
174
+ - ext/constants.h
175
+ - ext/extconf.rb
176
+ - ext/macros.h
177
+ - ext/memory_buffer.c
178
+ - ext/memory_buffer.h
179
+ - ext/protocol.c
180
+ - ext/protocol.h
181
+ - ext/strlcpy.c
182
+ - ext/strlcpy.h
183
+ - ext/struct.c
184
+ - ext/struct.h
185
+ - ext/thrift_native.c
186
+ - lib/thrift.rb
187
+ - lib/thrift/bytes.rb
188
+ - lib/thrift/client.rb
189
+ - lib/thrift/core_ext.rb
190
+ - lib/thrift/core_ext/fixnum.rb
191
+ - lib/thrift/exceptions.rb
192
+ - lib/thrift/processor.rb
193
+ - lib/thrift/protocol/base_protocol.rb
194
+ - lib/thrift/protocol/binary_protocol.rb
195
+ - lib/thrift/protocol/binary_protocol_accelerated.rb
196
+ - lib/thrift/protocol/compact_protocol.rb
197
+ - lib/thrift/protocol/json_protocol.rb
198
+ - lib/thrift/serializer/deserializer.rb
199
+ - lib/thrift/serializer/serializer.rb
200
+ - lib/thrift/server/base_server.rb
201
+ - lib/thrift/server/mongrel_http_server.rb
202
+ - lib/thrift/server/nonblocking_server.rb
203
+ - lib/thrift/server/simple_server.rb
204
+ - lib/thrift/server/thin_http_server.rb
205
+ - lib/thrift/server/thread_pool_server.rb
206
+ - lib/thrift/server/threaded_server.rb
207
+ - lib/thrift/struct.rb
208
+ - lib/thrift/struct_union.rb
209
+ - lib/thrift/thrift_native.rb
210
+ - lib/thrift/transport/base_server_transport.rb
211
+ - lib/thrift/transport/base_transport.rb
212
+ - lib/thrift/transport/buffered_transport.rb
213
+ - lib/thrift/transport/framed_transport.rb
214
+ - lib/thrift/transport/http_client_transport.rb
215
+ - lib/thrift/transport/io_stream_transport.rb
216
+ - lib/thrift/transport/memory_buffer_transport.rb
217
+ - lib/thrift/transport/server_socket.rb
218
+ - lib/thrift/transport/socket.rb
219
+ - lib/thrift/transport/unix_server_socket.rb
220
+ - lib/thrift/transport/unix_socket.rb
221
+ - lib/thrift/types.rb
222
+ - lib/thrift/union.rb
223
+ - lib/tiny_thrift.rb
224
+ - spec/ThriftSpec.thrift
225
+ - spec/base_protocol_spec.rb
226
+ - spec/base_transport_spec.rb
227
+ - spec/binary_protocol_accelerated_spec.rb
228
+ - spec/binary_protocol_spec.rb
229
+ - spec/binary_protocol_spec_shared.rb
230
+ - spec/bytes_spec.rb
231
+ - spec/client_spec.rb
232
+ - spec/compact_protocol_spec.rb
233
+ - spec/exception_spec.rb
234
+ - spec/http_client_spec.rb
235
+ - spec/json_protocol_spec.rb
236
+ - spec/nonblocking_server_spec.rb
237
+ - spec/processor_spec.rb
238
+ - spec/serializer_spec.rb
239
+ - spec/server_socket_spec.rb
240
+ - spec/server_spec.rb
241
+ - spec/socket_spec.rb
242
+ - spec/socket_spec_shared.rb
243
+ - spec/spec_helper.rb
244
+ - spec/struct_nested_containers_spec.rb
245
+ - spec/struct_spec.rb
246
+ - spec/thin_http_server_spec.rb
247
+ - spec/types_spec.rb
248
+ - spec/union_spec.rb
249
+ - spec/unix_socket_spec.rb
250
+ homepage: http://thrift.apache.org
251
+ licenses:
252
+ - Apache 2.0
253
+ metadata: {}
254
+ post_install_message:
255
+ rdoc_options:
256
+ - "--line-numbers"
257
+ - "--inline-source"
258
+ - "--title"
259
+ - Thrift
260
+ - "--main"
261
+ - README
262
+ require_paths:
263
+ - lib
264
+ - ext
265
+ required_ruby_version: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - ">="
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
270
+ required_rubygems_version: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - ">="
273
+ - !ruby/object:Gem::Version
274
+ version: '0'
275
+ requirements: []
276
+ rubyforge_project: thrift
277
+ rubygems_version: 2.2.2
278
+ signing_key:
279
+ specification_version: 4
280
+ summary: Ruby bindings for Apache Thrift
281
+ test_files:
282
+ - spec/base_protocol_spec.rb
283
+ - spec/base_transport_spec.rb
284
+ - spec/binary_protocol_accelerated_spec.rb
285
+ - spec/binary_protocol_spec.rb
286
+ - spec/binary_protocol_spec_shared.rb
287
+ - spec/bytes_spec.rb
288
+ - spec/client_spec.rb
289
+ - spec/compact_protocol_spec.rb
290
+ - spec/exception_spec.rb
291
+ - spec/http_client_spec.rb
292
+ - spec/json_protocol_spec.rb
293
+ - spec/nonblocking_server_spec.rb
294
+ - spec/processor_spec.rb
295
+ - spec/serializer_spec.rb
296
+ - spec/server_socket_spec.rb
297
+ - spec/server_spec.rb
298
+ - spec/socket_spec.rb
299
+ - spec/socket_spec_shared.rb
300
+ - spec/spec_helper.rb
301
+ - spec/struct_nested_containers_spec.rb
302
+ - spec/struct_spec.rb
303
+ - spec/thin_http_server_spec.rb
304
+ - spec/ThriftSpec.thrift
305
+ - spec/types_spec.rb
306
+ - spec/union_spec.rb
307
+ - spec/unix_socket_spec.rb
308
+ - benchmark/benchmark.rb
309
+ - benchmark/Benchmark.thrift
310
+ - benchmark/client.rb
311
+ - benchmark/server.rb
312
+ - benchmark/thin_server.rb
313
+ has_rdoc: true