tiny_thrift 1.0.0.0

Sign up to get free protection for your applications and to get access to all the features.
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