capn_proto-rpc 0.1.1.alpha.rpc
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.travis.yml +19 -0
- data/Gemfile +2 -0
- data/LICENSE +19 -0
- data/README.md +249 -0
- data/Rakefile +44 -0
- data/capn_proto.gemspec +37 -0
- data/examples/addressbook.bin +0 -0
- data/examples/addressbook.capnp +31 -0
- data/examples/create_test_data.py +39 -0
- data/examples/example.rb +38 -0
- data/ext/capn_proto/.ycm_extra_conf.py +65 -0
- data/ext/capn_proto/EzRpc_client.cc +52 -0
- data/ext/capn_proto/EzRpc_client.h +21 -0
- data/ext/capn_proto/EzRpc_server.cc +79 -0
- data/ext/capn_proto/EzRpc_server.h +32 -0
- data/ext/capn_proto/call_context.cc +67 -0
- data/ext/capn_proto/call_context.h +25 -0
- data/ext/capn_proto/capability_client.cc +47 -0
- data/ext/capn_proto/capability_client.h +21 -0
- data/ext/capn_proto/class_builder.cc +80 -0
- data/ext/capn_proto/class_builder.h +72 -0
- data/ext/capn_proto/cxx_compiler.rb +126 -0
- data/ext/capn_proto/dynamic_capability_client.cc +73 -0
- data/ext/capn_proto/dynamic_capability_client.h +22 -0
- data/ext/capn_proto/dynamic_list_builder.cc +123 -0
- data/ext/capn_proto/dynamic_list_builder.h +27 -0
- data/ext/capn_proto/dynamic_list_reader.cc +63 -0
- data/ext/capn_proto/dynamic_list_reader.h +25 -0
- data/ext/capn_proto/dynamic_object_builder.cc +57 -0
- data/ext/capn_proto/dynamic_object_builder.h +22 -0
- data/ext/capn_proto/dynamic_object_reader.cc +56 -0
- data/ext/capn_proto/dynamic_object_reader.h +22 -0
- data/ext/capn_proto/dynamic_struct_builder.cc +180 -0
- data/ext/capn_proto/dynamic_struct_builder.h +34 -0
- data/ext/capn_proto/dynamic_struct_reader.cc +69 -0
- data/ext/capn_proto/dynamic_struct_reader.h +25 -0
- data/ext/capn_proto/dynamic_value_builder.cc +53 -0
- data/ext/capn_proto/dynamic_value_builder.h +13 -0
- data/ext/capn_proto/dynamic_value_reader.cc +55 -0
- data/ext/capn_proto/dynamic_value_reader.h +13 -0
- data/ext/capn_proto/exception.cc +34 -0
- data/ext/capn_proto/exception.h +20 -0
- data/ext/capn_proto/extconf.rb +32 -0
- data/ext/capn_proto/field_list.cc +51 -0
- data/ext/capn_proto/field_list.h +23 -0
- data/ext/capn_proto/flat_array_message_reader.cc +61 -0
- data/ext/capn_proto/flat_array_message_reader.h +21 -0
- data/ext/capn_proto/init.cc +71 -0
- data/ext/capn_proto/interface_method.cc +38 -0
- data/ext/capn_proto/interface_method.h +21 -0
- data/ext/capn_proto/interface_schema.cc +51 -0
- data/ext/capn_proto/interface_schema.h +26 -0
- data/ext/capn_proto/list_nested_node_reader.cc +53 -0
- data/ext/capn_proto/list_nested_node_reader.h +24 -0
- data/ext/capn_proto/malloc_message_builder.cc +51 -0
- data/ext/capn_proto/malloc_message_builder.h +21 -0
- data/ext/capn_proto/message_builder.cc +22 -0
- data/ext/capn_proto/message_builder.h +17 -0
- data/ext/capn_proto/message_reader.cc +30 -0
- data/ext/capn_proto/message_reader.h +17 -0
- data/ext/capn_proto/nested_node_reader.cc +42 -0
- data/ext/capn_proto/nested_node_reader.h +21 -0
- data/ext/capn_proto/parsed_schema.cc +65 -0
- data/ext/capn_proto/parsed_schema.h +24 -0
- data/ext/capn_proto/rb.cc +0 -0
- data/ext/capn_proto/rb.h +0 -0
- data/ext/capn_proto/remote_promise.cc +116 -0
- data/ext/capn_proto/remote_promise.h +30 -0
- data/ext/capn_proto/ruby_capability_server.cc +23 -0
- data/ext/capn_proto/ruby_capability_server.h +21 -0
- data/ext/capn_proto/ruby_capn_proto.cc +4 -0
- data/ext/capn_proto/ruby_capn_proto.h +42 -0
- data/ext/capn_proto/schema_node_reader.cc +59 -0
- data/ext/capn_proto/schema_node_reader.h +23 -0
- data/ext/capn_proto/schema_parser.cc +61 -0
- data/ext/capn_proto/schema_parser.h +20 -0
- data/ext/capn_proto/stream_fd_message_reader.cc +59 -0
- data/ext/capn_proto/stream_fd_message_reader.h +21 -0
- data/ext/capn_proto/struct_schema.cc +59 -0
- data/ext/capn_proto/struct_schema.h +23 -0
- data/ext/capn_proto/util.cc +30 -0
- data/ext/capn_proto/util.h +17 -0
- data/lib/capn_proto.rb +231 -0
- data/lib/capn_proto/version.rb +3 -0
- data/media/captain_proto.png +0 -0
- data/media/captain_proto_small.png +0 -0
- data/spec/addressbook.bin +0 -0
- data/spec/addressbook.capnp +31 -0
- data/spec/capn_proto_spec.rb +80 -0
- data/spec/create_test_data.py +38 -0
- data/spec/spec_helper.rb +8 -0
- data/tests/hidraCordatus.capnp +16 -0
- data/tests/hidraCordatusEmployer.rb +33 -0
- data/tests/hidraCordatusMaster.rb +51 -0
- metadata +216 -0
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,31 @@
|
|
1
|
+
@0x9eb32e19f86ee174;
|
2
|
+
|
3
|
+
struct Person {
|
4
|
+
id @0 :UInt32;
|
5
|
+
name @1 :Text;
|
6
|
+
email @2 :Text;
|
7
|
+
phones @3 :List(PhoneNumber);
|
8
|
+
|
9
|
+
struct PhoneNumber {
|
10
|
+
number @0 :Text;
|
11
|
+
type @1 :Type;
|
12
|
+
|
13
|
+
enum Type {
|
14
|
+
mobile @0;
|
15
|
+
home @1;
|
16
|
+
work @2;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
employment :union {
|
21
|
+
unemployed @4 :Void;
|
22
|
+
employer @5 :Text;
|
23
|
+
school @6 :Text;
|
24
|
+
selfEmployed @7 :Void;
|
25
|
+
# We assume that a person is only one of these.
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
struct AddressBook {
|
30
|
+
people @0 :List(Person);
|
31
|
+
}
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'tempfile'
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'capn_proto'
|
4
|
+
|
5
|
+
ADDRESSBOOK_SCHEMA = File.expand_path("../addressbook.capnp", __FILE__)
|
6
|
+
|
7
|
+
module AddressBook extend CapnProto::SchemaLoader
|
8
|
+
load_schema(ADDRESSBOOK_SCHEMA)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "reading" do
|
12
|
+
describe "Dynamic Structs" do
|
13
|
+
let(:file) { open_file("addressbook.bin") }
|
14
|
+
let(:addresses) { AddressBook::AddressBook.read_from(file) }
|
15
|
+
|
16
|
+
it "unkown fields raise exception" do
|
17
|
+
expect { addresses.foo }.to raise_error(CapnProto::Exception)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "Dynamic Lists" do
|
22
|
+
let(:file) { open_file("addressbook.bin") }
|
23
|
+
let(:addresses) { AddressBook::AddressBook.read_from(file) }
|
24
|
+
let(:people) { addresses.people }
|
25
|
+
|
26
|
+
it "#[] given out-of-bounds index raises" do
|
27
|
+
expect { addresses.people[999999] }.to raise_error(CapnProto::Exception)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "writing" do
|
33
|
+
describe "#write" do
|
34
|
+
it "full circle" do
|
35
|
+
tmp = Tempfile.new('test.bin')
|
36
|
+
addresses = AddressBook::AddressBook.new_message
|
37
|
+
people = addresses.initPeople(1)
|
38
|
+
bob = people[0]
|
39
|
+
bob.name = "Bob"
|
40
|
+
bob.id = 123
|
41
|
+
addresses.write(tmp)
|
42
|
+
|
43
|
+
tmp.rewind
|
44
|
+
addresses = AddressBook::AddressBook.read_from(tmp)
|
45
|
+
expect(addresses.people.size).to eq 1
|
46
|
+
expect(addresses.people.first.name).to eq "Bob"
|
47
|
+
expect(addresses.people.first.id).to eq 123
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "#to_bytes" do
|
52
|
+
it "full circle" do
|
53
|
+
addresses = AddressBook::AddressBook.new_message
|
54
|
+
people = addresses.initPeople(1)
|
55
|
+
bob = people[0]
|
56
|
+
bob.name = "Bob"
|
57
|
+
bob.id = 123
|
58
|
+
bytes = addresses.to_bytes
|
59
|
+
|
60
|
+
addresses = AddressBook::AddressBook.make_from_bytes(bytes)
|
61
|
+
expect(addresses.people.size).to eq 1
|
62
|
+
expect(addresses.people.first.name).to eq "Bob"
|
63
|
+
expect(addresses.people.first.id).to eq 123
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "Dynamic Structs" do
|
68
|
+
let(:addresses) { AddressBook::AddressBook.new_message }
|
69
|
+
|
70
|
+
it "works" do
|
71
|
+
people = addresses.initPeople(3)
|
72
|
+
bob = people.first
|
73
|
+
bob.name = "Bob"
|
74
|
+
bob.id = 10
|
75
|
+
|
76
|
+
people[1] = bob
|
77
|
+
x = people[1]
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
from __future__ import print_function
|
3
|
+
import os
|
4
|
+
import capnp
|
5
|
+
|
6
|
+
this_dir = os.path.dirname(__file__)
|
7
|
+
addressbook = capnp.load(os.path.join(this_dir, 'addressbook.capnp'))
|
8
|
+
|
9
|
+
def writeAddressBook(file):
|
10
|
+
addresses = addressbook.AddressBook.newMessage()
|
11
|
+
people = addresses.init('people', 2)
|
12
|
+
|
13
|
+
alice = people[0]
|
14
|
+
alice.id = 123
|
15
|
+
alice.name = 'Alice'
|
16
|
+
alice.email = 'alice@example.com'
|
17
|
+
alicePhones = alice.init('phones', 1)
|
18
|
+
alicePhones[0].number = "555-1212"
|
19
|
+
alicePhones[0].type = 'mobile'
|
20
|
+
alice.employment.school = "MIT"
|
21
|
+
|
22
|
+
bob = people[1]
|
23
|
+
bob.id = 456
|
24
|
+
bob.name = 'Bob'
|
25
|
+
bob.email = 'bob@example.com'
|
26
|
+
bobPhones = bob.init('phones', 2)
|
27
|
+
bobPhones[0].number = "555-4567"
|
28
|
+
bobPhones[0].type = 'home'
|
29
|
+
bobPhones[1].number = "555-7654"
|
30
|
+
bobPhones[1].type = 'work'
|
31
|
+
bob.employment.unemployed = None
|
32
|
+
|
33
|
+
addresses.writeTo(file)
|
34
|
+
|
35
|
+
|
36
|
+
if __name__ == '__main__':
|
37
|
+
f = open('addressbook.bin', 'w')
|
38
|
+
writeAddressBook(f)
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# made by Felipe Vieira, gsoc 2016 student
|
2
|
+
|
3
|
+
@0x9dfdcaa625365235;
|
4
|
+
|
5
|
+
struct Task {
|
6
|
+
dataint @0 :Int32;
|
7
|
+
madeBy @1 :Text;
|
8
|
+
}
|
9
|
+
|
10
|
+
interface Employer {
|
11
|
+
getWorker @0 () -> ( worker :Worker );
|
12
|
+
}
|
13
|
+
|
14
|
+
interface Worker {
|
15
|
+
put23 @0 (taskToProcess :Task) -> (taskProcessed :Task);
|
16
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'capn_proto'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
|
4
|
+
module Hydra extend CapnProto::SchemaLoader
|
5
|
+
load_schema('hidraCordatus.capnp')
|
6
|
+
end
|
7
|
+
|
8
|
+
class Employer < Minitest::Test
|
9
|
+
def test_push_a_ton_of_tasks
|
10
|
+
employer_schema = Hydra::Employer.schema
|
11
|
+
get_worker_method = Hydra::Employer.method! 'getWorker'
|
12
|
+
put23method = Hydra::Worker.method! 'put23'
|
13
|
+
|
14
|
+
ezclient = CapnProto::EzRpcClient.new("127.0.0.1:1337",employer_schema)
|
15
|
+
client = ezclient.client
|
16
|
+
|
17
|
+
100.times do
|
18
|
+
|
19
|
+
#set up the request
|
20
|
+
request = client.request(get_worker_method)
|
21
|
+
pipelinedRequest = request.send
|
22
|
+
pipelinedRequest.get('worker').method = put23method
|
23
|
+
pipelinedRequest.taskToProcess.dataint(0)
|
24
|
+
|
25
|
+
#get the results
|
26
|
+
results = pipelinedRequest.send.wait(ezclient)
|
27
|
+
p results.taskProcessed.dataint
|
28
|
+
p results.taskProcessed.madeBy
|
29
|
+
|
30
|
+
assert results.taskProcessed.dataint == 23
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'capn_proto'
|
2
|
+
|
3
|
+
module Hydra extend CapnProto::SchemaLoader
|
4
|
+
load_schema('hidraCordatus.capnp')
|
5
|
+
end
|
6
|
+
|
7
|
+
class WorkerServer < CapnProto::CapabilityServer
|
8
|
+
def initialize(i)
|
9
|
+
@madeBy = "made by worker ##{i}"
|
10
|
+
super(Hydra::Worker.schema)
|
11
|
+
end
|
12
|
+
|
13
|
+
def put23(context)
|
14
|
+
puts "put23 called"
|
15
|
+
n = context.getParams.taskToProcess.dataint
|
16
|
+
context.getResults.taskProcessed.dataint = n + 23
|
17
|
+
context.getResults.taskProcessed.madeBy = @madeBy
|
18
|
+
puts "put23 dispatched"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class EmployerServer < CapnProto::CapabilityServer
|
23
|
+
def initialize(wp)
|
24
|
+
@worker_pool = wp
|
25
|
+
@currentWorker = 0
|
26
|
+
super(Hydra::Employer.schema)
|
27
|
+
end
|
28
|
+
|
29
|
+
def get_a_Worker
|
30
|
+
@currentWorker += 1
|
31
|
+
@worker_pool[@currentWorker % @worker_pool.size]
|
32
|
+
end
|
33
|
+
|
34
|
+
def getWorker(context)
|
35
|
+
puts "getWorker called"
|
36
|
+
context.getResults.worker = get_a_Worker
|
37
|
+
puts "getWorker dispatched"
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
workers = []
|
44
|
+
10.times do |i|
|
45
|
+
workers << WorkerServer.new(i)
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
e = CapnProto::EzRpcServer.new(EmployerServer.new(workers), "*:1337")
|
50
|
+
puts "serving EmployerServer on 1337..."
|
51
|
+
e.run
|
metadata
ADDED
@@ -0,0 +1,216 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: capn_proto-rpc
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1.alpha.rpc
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Charles Strahan
|
8
|
+
- Felipe Vieira
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2016-08-12 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - '='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 2.14.1
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - '='
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 2.14.1
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rake
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rake-compiler
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - '='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 0.7.6
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - '='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 0.7.6
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: awesome_print
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: interactive_editor
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
description: 'This gem wraps the official C++ implementation of Cap''n Proto (libcapnp).
|
85
|
+
From the Cap''n Proto documentation: "Cap''n Proto is an insanely fast data interchange
|
86
|
+
format and capability-based RPC system. Think JSON, except binary. Or think Protocol
|
87
|
+
Buffers, except faster." This is a extended version of the original gem Capnproto
|
88
|
+
which adds RPC support visit the homepage to view usage'
|
89
|
+
email:
|
90
|
+
- charles.c.strahan@gmail.com
|
91
|
+
- felipetavres@gmail.com
|
92
|
+
executables: []
|
93
|
+
extensions:
|
94
|
+
- ext/capn_proto/extconf.rb
|
95
|
+
extra_rdoc_files: []
|
96
|
+
files:
|
97
|
+
- ".gitignore"
|
98
|
+
- ".travis.yml"
|
99
|
+
- Gemfile
|
100
|
+
- LICENSE
|
101
|
+
- README.md
|
102
|
+
- Rakefile
|
103
|
+
- capn_proto.gemspec
|
104
|
+
- examples/addressbook.bin
|
105
|
+
- examples/addressbook.capnp
|
106
|
+
- examples/create_test_data.py
|
107
|
+
- examples/example.rb
|
108
|
+
- ext/capn_proto/.ycm_extra_conf.py
|
109
|
+
- ext/capn_proto/EzRpc_client.cc
|
110
|
+
- ext/capn_proto/EzRpc_client.h
|
111
|
+
- ext/capn_proto/EzRpc_server.cc
|
112
|
+
- ext/capn_proto/EzRpc_server.h
|
113
|
+
- ext/capn_proto/call_context.cc
|
114
|
+
- ext/capn_proto/call_context.h
|
115
|
+
- ext/capn_proto/capability_client.cc
|
116
|
+
- ext/capn_proto/capability_client.h
|
117
|
+
- ext/capn_proto/class_builder.cc
|
118
|
+
- ext/capn_proto/class_builder.h
|
119
|
+
- ext/capn_proto/cxx_compiler.rb
|
120
|
+
- ext/capn_proto/dynamic_capability_client.cc
|
121
|
+
- ext/capn_proto/dynamic_capability_client.h
|
122
|
+
- ext/capn_proto/dynamic_list_builder.cc
|
123
|
+
- ext/capn_proto/dynamic_list_builder.h
|
124
|
+
- ext/capn_proto/dynamic_list_reader.cc
|
125
|
+
- ext/capn_proto/dynamic_list_reader.h
|
126
|
+
- ext/capn_proto/dynamic_object_builder.cc
|
127
|
+
- ext/capn_proto/dynamic_object_builder.h
|
128
|
+
- ext/capn_proto/dynamic_object_reader.cc
|
129
|
+
- ext/capn_proto/dynamic_object_reader.h
|
130
|
+
- ext/capn_proto/dynamic_struct_builder.cc
|
131
|
+
- ext/capn_proto/dynamic_struct_builder.h
|
132
|
+
- ext/capn_proto/dynamic_struct_reader.cc
|
133
|
+
- ext/capn_proto/dynamic_struct_reader.h
|
134
|
+
- ext/capn_proto/dynamic_value_builder.cc
|
135
|
+
- ext/capn_proto/dynamic_value_builder.h
|
136
|
+
- ext/capn_proto/dynamic_value_reader.cc
|
137
|
+
- ext/capn_proto/dynamic_value_reader.h
|
138
|
+
- ext/capn_proto/exception.cc
|
139
|
+
- ext/capn_proto/exception.h
|
140
|
+
- ext/capn_proto/extconf.rb
|
141
|
+
- ext/capn_proto/field_list.cc
|
142
|
+
- ext/capn_proto/field_list.h
|
143
|
+
- ext/capn_proto/flat_array_message_reader.cc
|
144
|
+
- ext/capn_proto/flat_array_message_reader.h
|
145
|
+
- ext/capn_proto/init.cc
|
146
|
+
- ext/capn_proto/interface_method.cc
|
147
|
+
- ext/capn_proto/interface_method.h
|
148
|
+
- ext/capn_proto/interface_schema.cc
|
149
|
+
- ext/capn_proto/interface_schema.h
|
150
|
+
- ext/capn_proto/list_nested_node_reader.cc
|
151
|
+
- ext/capn_proto/list_nested_node_reader.h
|
152
|
+
- ext/capn_proto/malloc_message_builder.cc
|
153
|
+
- ext/capn_proto/malloc_message_builder.h
|
154
|
+
- ext/capn_proto/message_builder.cc
|
155
|
+
- ext/capn_proto/message_builder.h
|
156
|
+
- ext/capn_proto/message_reader.cc
|
157
|
+
- ext/capn_proto/message_reader.h
|
158
|
+
- ext/capn_proto/nested_node_reader.cc
|
159
|
+
- ext/capn_proto/nested_node_reader.h
|
160
|
+
- ext/capn_proto/parsed_schema.cc
|
161
|
+
- ext/capn_proto/parsed_schema.h
|
162
|
+
- ext/capn_proto/rb.cc
|
163
|
+
- ext/capn_proto/rb.h
|
164
|
+
- ext/capn_proto/remote_promise.cc
|
165
|
+
- ext/capn_proto/remote_promise.h
|
166
|
+
- ext/capn_proto/ruby_capability_server.cc
|
167
|
+
- ext/capn_proto/ruby_capability_server.h
|
168
|
+
- ext/capn_proto/ruby_capn_proto.cc
|
169
|
+
- ext/capn_proto/ruby_capn_proto.h
|
170
|
+
- ext/capn_proto/schema_node_reader.cc
|
171
|
+
- ext/capn_proto/schema_node_reader.h
|
172
|
+
- ext/capn_proto/schema_parser.cc
|
173
|
+
- ext/capn_proto/schema_parser.h
|
174
|
+
- ext/capn_proto/stream_fd_message_reader.cc
|
175
|
+
- ext/capn_proto/stream_fd_message_reader.h
|
176
|
+
- ext/capn_proto/struct_schema.cc
|
177
|
+
- ext/capn_proto/struct_schema.h
|
178
|
+
- ext/capn_proto/util.cc
|
179
|
+
- ext/capn_proto/util.h
|
180
|
+
- lib/capn_proto.rb
|
181
|
+
- lib/capn_proto/version.rb
|
182
|
+
- media/captain_proto.png
|
183
|
+
- media/captain_proto_small.png
|
184
|
+
- spec/addressbook.bin
|
185
|
+
- spec/addressbook.capnp
|
186
|
+
- spec/capn_proto_spec.rb
|
187
|
+
- spec/create_test_data.py
|
188
|
+
- spec/spec_helper.rb
|
189
|
+
- tests/hidraCordatus.capnp
|
190
|
+
- tests/hidraCordatusEmployer.rb
|
191
|
+
- tests/hidraCordatusMaster.rb
|
192
|
+
homepage: https://github.com/nemoNoboru/capnp-ruby
|
193
|
+
licenses:
|
194
|
+
- MIT
|
195
|
+
metadata: {}
|
196
|
+
post_install_message:
|
197
|
+
rdoc_options: []
|
198
|
+
require_paths:
|
199
|
+
- lib
|
200
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
201
|
+
requirements:
|
202
|
+
- - ">="
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
version: '2.0'
|
205
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - ">"
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: 1.3.1
|
210
|
+
requirements: []
|
211
|
+
rubyforge_project:
|
212
|
+
rubygems_version: 2.5.1
|
213
|
+
signing_key:
|
214
|
+
specification_version: 4
|
215
|
+
summary: Cap'n Proto (libcapnp) bindings for Ruby.
|
216
|
+
test_files: []
|