nng-ruby 0.1.2 → 1.0.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +78 -45
- data/Gemfile +10 -10
- data/LICENSE +21 -21
- data/README.md +1201 -1200
- data/Rakefile +22 -22
- data/examples/pair.rb +48 -48
- data/examples/protobuf_advanced.rb +322 -322
- data/examples/protobuf_demo.rb +340 -340
- data/examples/protobuf_example.rb +374 -374
- data/examples/protobuf_simple.rb +191 -191
- data/examples/protobuf_thread.rb +236 -236
- data/examples/pubsub.rb +51 -51
- data/examples/reqrep.rb +54 -54
- data/ext/nng/extconf.rb +80 -71
- data/ext/nng/libnng.so.1.11.0 +0 -0
- data/ext/nng/nng.dll +0 -0
- data/lib/nng/errors.rb +48 -48
- data/lib/nng/ffi.rb +508 -445
- data/lib/nng/message.rb +151 -151
- data/lib/nng/protocols.rb +96 -96
- data/lib/nng/socket.rb +196 -196
- data/lib/nng/version.rb +5 -5
- data/lib/nng.rb +52 -52
- data/nng.gemspec +67 -67
- metadata +5 -4
- data/ext/nng/libnng.so.1.8.0 +0 -0
data/Rakefile
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'bundler/gem_tasks'
|
4
|
-
require 'rspec/core/rake_task'
|
5
|
-
|
6
|
-
RSpec::Core::RakeTask.new(:spec)
|
7
|
-
|
8
|
-
task default: :spec
|
9
|
-
|
10
|
-
desc 'Run examples'
|
11
|
-
task :examples do
|
12
|
-
Dir.glob('examples/*.rb').each do |file|
|
13
|
-
puts "\n=== Running #{file} ==="
|
14
|
-
system("ruby #{file}")
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
desc 'Generate YARD documentation'
|
19
|
-
task :yard do
|
20
|
-
require 'yard'
|
21
|
-
YARD::Rake::YardocTask.new
|
22
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler/gem_tasks'
|
4
|
+
require 'rspec/core/rake_task'
|
5
|
+
|
6
|
+
RSpec::Core::RakeTask.new(:spec)
|
7
|
+
|
8
|
+
task default: :spec
|
9
|
+
|
10
|
+
desc 'Run examples'
|
11
|
+
task :examples do
|
12
|
+
Dir.glob('examples/*.rb').each do |file|
|
13
|
+
puts "\n=== Running #{file} ==="
|
14
|
+
system("ruby #{file}")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'Generate YARD documentation'
|
19
|
+
task :yard do
|
20
|
+
require 'yard'
|
21
|
+
YARD::Rake::YardocTask.new
|
22
|
+
end
|
data/examples/pair.rb
CHANGED
@@ -1,48 +1,48 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require_relative '../lib/nng'
|
5
|
-
|
6
|
-
# Example: Pair protocol (bidirectional communication)
|
7
|
-
|
8
|
-
puts "NNG Pair Protocol Example"
|
9
|
-
puts "=" * 50
|
10
|
-
|
11
|
-
# Create server socket
|
12
|
-
server = NNG::Socket.new(:pair1)
|
13
|
-
server.listen("tcp://127.0.0.1:5555")
|
14
|
-
puts "Server listening on tcp://127.0.0.1:5555"
|
15
|
-
|
16
|
-
# Create client socket in a thread
|
17
|
-
client_thread = Thread.new do
|
18
|
-
sleep 0.5 # Give server time to start
|
19
|
-
client = NNG::Socket.new(:pair1)
|
20
|
-
client.dial("tcp://127.0.0.1:5555")
|
21
|
-
puts "Client connected"
|
22
|
-
|
23
|
-
# Send message from client
|
24
|
-
client.send("Hello from client!")
|
25
|
-
puts "Client sent: Hello from client!"
|
26
|
-
|
27
|
-
# Receive response
|
28
|
-
response = client.recv
|
29
|
-
puts "Client received: #{response}"
|
30
|
-
|
31
|
-
client.close
|
32
|
-
end
|
33
|
-
|
34
|
-
# Server receives and responds
|
35
|
-
data = server.recv
|
36
|
-
puts "Server received: #{data}"
|
37
|
-
|
38
|
-
server.send("Hello from server!")
|
39
|
-
puts "Server sent: Hello from server!"
|
40
|
-
|
41
|
-
# Wait for client thread
|
42
|
-
client_thread.join
|
43
|
-
|
44
|
-
# Cleanup
|
45
|
-
server.close
|
46
|
-
|
47
|
-
puts "=" * 50
|
48
|
-
puts "Example completed!"
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative '../lib/nng'
|
5
|
+
|
6
|
+
# Example: Pair protocol (bidirectional communication)
|
7
|
+
|
8
|
+
puts "NNG Pair Protocol Example"
|
9
|
+
puts "=" * 50
|
10
|
+
|
11
|
+
# Create server socket
|
12
|
+
server = NNG::Socket.new(:pair1)
|
13
|
+
server.listen("tcp://127.0.0.1:5555")
|
14
|
+
puts "Server listening on tcp://127.0.0.1:5555"
|
15
|
+
|
16
|
+
# Create client socket in a thread
|
17
|
+
client_thread = Thread.new do
|
18
|
+
sleep 0.5 # Give server time to start
|
19
|
+
client = NNG::Socket.new(:pair1)
|
20
|
+
client.dial("tcp://127.0.0.1:5555")
|
21
|
+
puts "Client connected"
|
22
|
+
|
23
|
+
# Send message from client
|
24
|
+
client.send("Hello from client!")
|
25
|
+
puts "Client sent: Hello from client!"
|
26
|
+
|
27
|
+
# Receive response
|
28
|
+
response = client.recv
|
29
|
+
puts "Client received: #{response}"
|
30
|
+
|
31
|
+
client.close
|
32
|
+
end
|
33
|
+
|
34
|
+
# Server receives and responds
|
35
|
+
data = server.recv
|
36
|
+
puts "Server received: #{data}"
|
37
|
+
|
38
|
+
server.send("Hello from server!")
|
39
|
+
puts "Server sent: Hello from server!"
|
40
|
+
|
41
|
+
# Wait for client thread
|
42
|
+
client_thread.join
|
43
|
+
|
44
|
+
# Cleanup
|
45
|
+
server.close
|
46
|
+
|
47
|
+
puts "=" * 50
|
48
|
+
puts "Example completed!"
|