cztop 0.14.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1b76df17a50c624efad9617599401e6b76ae5b50700544d37c5c8d0bf28b92a2
4
- data.tar.gz: c956bf815260cd9cbf7368467a4c9f24d7db33969b706a8ad6d4aa9d61626187
3
+ metadata.gz: '0099b49a3147e57b4e29b8ca7288370f56e06694230c2f390e36308ac1f0cb1e'
4
+ data.tar.gz: d4431ae33cc4c35f9911d755d4377913f502156c26317b04a720c598f1f3eb3b
5
5
  SHA512:
6
- metadata.gz: 35945dabfac2708d8fa666638221495e5beffa0bb901733115a9cdc49a4ed7393e6528f870f5ef6952d780a1ffe96c0eebe24953ee87e20ea058e26d7e6dd333
7
- data.tar.gz: 38343f20bfad8f9b5a3cf735d6bf4f1d23e7bc74ead44f7ebc09df7dbe4fdf2e50722710b230fdf1f70f99a5967ae3bc3eb77e056e7f24a928c8e6c1da6193f7
6
+ metadata.gz: 48f93f12b32aaed87a7cdbdf3f83ff064e69f1fef3e27e4dfaee21a7d721698bd8e7e1675d6fa1110b7597ae7651d971d4502b631a5505345cbb0dbf8ecc19e8
7
+ data.tar.gz: 90540f6ccab41b27361fc1372feb5198351a725b20a69509285ed459073f438a149a7e5e11043a1936b978610c664a0f7096bbb27c6801054cb85ff6fcd6a0b4
@@ -0,0 +1,26 @@
1
+ name: Specs
2
+
3
+ on: [push,pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-20.04
8
+ strategy:
9
+ matrix:
10
+ ruby:
11
+ - "2.6"
12
+ - "2.7"
13
+ - "3.0"
14
+ steps:
15
+ - uses: actions/checkout@v2
16
+ - name: Set up Ruby ${{ matrix.ruby }}
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: ${{ matrix.ruby }}
20
+ - name: Install CZMQ
21
+ run: sudo apt install libczmq-dev
22
+ - name: Run the default task
23
+ run: |
24
+ gem install bundler -v 2.2.3
25
+ bundle install
26
+ bundle exec rake
@@ -0,0 +1 @@
1
+ 3.0
data/CHANGES.md CHANGED
@@ -1,8 +1,6 @@
1
- 0.14.1 (11/25/2019)
1
+ 1.0.0 (01/08/2021)
2
2
  -----
3
- * relax dependencies (ffi)
4
- * respect env var ZMQ_PATH when loading ZMQ for CZTop::Poller
5
-
3
+ * modernized project
6
4
 
7
5
  0.13.1 (03/04/2018)
8
6
  -----
data/Gemfile CHANGED
@@ -2,13 +2,4 @@ source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
4
  # useful when working on czmq-ffi-gen in parallel
5
- #gem "czmq-ffi-gen", git: "https://github.com/paddor/czmq-ffi-gen.git"
6
- #gem "rspec-core", git: "file:///Users/paddor/src/ruby/rspec-core"
7
-
8
- group :development do
9
- gem 'rubocop', require: false
10
- gem 'coveralls', require: false, platform: :mri
11
-
12
- # >= 3.1 doesn't work on Rubinius, see guard/listen#391
13
- gem 'listen', '~> 3.0.x', require: false
14
- end
5
+ # gem "czmq-ffi-gen", path: "../czmq-ffi-gen"
data/README.md CHANGED
@@ -1,31 +1,13 @@
1
+ ![Specs status](https://github.com/paddor/cztop/workflows/Specs/badge.svg)
2
+
1
3
  # CZTop
2
4
 
3
5
  CZTop is a CZMQ binding for Ruby. It is based on
4
- [czmq-ffi-gen](https://gitlab.com/paddor/czmq-ffi-gen), the generated low-level
6
+ [czmq-ffi-gen](https://github.com/paddor/czmq-ffi-gen), the generated low-level
5
7
  FFI binding of [CZMQ](https://github.com/zeromq/czmq) and has a focus on being
6
8
  easy to use for Rubyists (POLS) and providing first class support for security
7
9
  mechanisms (like CURVE).
8
10
 
9
- [![pipeline status](https://gitlab.com/paddor/cztop/badges/master/pipeline.svg)](https://gitlab.com/paddor/cztop/commits/master)
10
- [![Coverage Status](https://coveralls.io/repos/gitlab/paddor/cztop/badge.svg?branch=master)](https://coveralls.io/gitlab/paddor/cztop?branch=master)
11
- [![ISC License](https://img.shields.io/badge/license-ISC_License-blue.svg)](LICENSE)
12
-
13
- ## Goals
14
-
15
- Here are some some of the goals I had in mind for this library:
16
-
17
- - [x] as easy as possible, Ruby-esque API
18
- - [x] first class support for security (CURVE mechanism)
19
- - [x] including handling of certificates
20
- - [x] support MRI, Rubinius, and JRuby
21
- - [x] high-quality API documentation
22
- - [x] 100% test coverage
23
- - [x] provide a portable Z85 implementation
24
- * unlike [fpesce/z85](https://github.com/fpesce/z85), which is a C extension
25
- - [x] use it to replace the [Celluloid::ZMQ](https://github.com/celluloid/celluloid-zmq) part of [Celluloid](https://github.com/celluloid/celluloid)
26
- * [celluloid/celluloid-zmq#56](https://github.com/celluloid/celluloid-zmq/issues/56)
27
- - [ ] implement some of the missing (CZMQ based) Ruby examples in the [ZMQ Guide](http://zguide.zeromq.org/page:all)
28
-
29
11
  ## Overview
30
12
 
31
13
  ### Class Hierarchy
@@ -89,50 +71,28 @@ More information in the [API documentation](http://www.rubydoc.info/github/paddo
89
71
  * use `Socket#CURVE_server!(cert)` on the server
90
72
  * and `Socket#CURVE_client!(client_cert, server_cert)` on the client
91
73
  * socket types as Ruby classes
92
- * no need to manually pass some constant
74
+ * no need to manually pass type constants
93
75
  * but you can: `CZTop::Socket.new_by_type(:REP)`
94
- * e.g. `#subscribe` only exists on CZTop::Socket::SUB
95
- * DRAFT API ready
96
- * certain DRAFT methods are supported if the libraries (ZMQ/CZMQ) have been compiled with DRAFT APIs enabled (`--enable-drafts`)
97
- * use `CZMQ::FFI.has_draft?` to check if the CZMQ DRAFT API is available
98
- * use `CZMQ::FFI::LibZMQ.has_draft?` to check if the ZMQ DRAFT API is available
99
- * extend CZTop to your needs
100
- * ZMTP 3.1 heartbeat ready
101
- * `socket.options.heartbeat_ivl = 2000`
102
- * `socket.options.heartbeat_timeout = 8000`
76
+ * e.g. `#subscribe` only exists on `CZTop::Socket::SUB`
103
77
 
104
78
  ## Requirements
105
79
 
106
- You'll need:
107
-
108
- * CZMQ >= 4.1
109
- * ZMQ >= 4.2
110
-
111
- For security mechanisms like CURVE, it's recommended to use Libsodium. However,
112
- ZMQ can be compiled with tweetnacl enabled.
113
80
 
114
- To install on OSX using homebrew, run:
81
+ * CZMQ >= 4.2
82
+ * ZMQ >= 4.3
115
83
 
116
- $ brew install libsodium
117
- $ brew install zmq --HEAD --with-libsodium
118
- $ brew install czmq --HEAD
119
84
 
120
- If you're running Linux, go check [this page](http://zeromq.org/distro:_start)
121
- to get more help. Make sure to install CZMQ, not only ZMQ.
85
+ On Ubuntu 20.04+:
122
86
 
123
- **Note:** Currently (as of May 2016), when compiling ZMQ from master, it may
124
- be required to pass `--enable-drafts` to `./configure` to make sure all the
125
- `zmq_poller_*()` functions are available. However, this doesn't seem to be the
126
- case on all systems.
87
+ $ sudo apt install libczmq-dev
127
88
 
128
- ### Supported Ruby versions
89
+ On macOS using Homebrew, run:
129
90
 
130
- See [.travis.yml](https://github.com/paddor/cztop/blob/master/.travis.yml) for a list of Ruby versions against which CZTop
131
- is tested.
91
+ $ brew install czmq
132
92
 
133
- At the time of writing, these include:
93
+ ### Supported Rubies
134
94
 
135
- * MRI (2.3, 2.2)
95
+ * MRI (2.6, 2.7, 3.0)
136
96
  * Rubinius (HEAD)
137
97
  * JRuby 9000 (HEAD)
138
98
 
@@ -159,20 +119,19 @@ and Ruby. The following API documentation is currently available:
159
119
 
160
120
  * [YARD API documentation](http://www.rubydoc.info/gems/cztop) (release)
161
121
 
162
- Feel free to start a [wiki](https://gitlab.com/paddor/cztop/wiki) page.
122
+ Feel free to start a [wiki](https://github.com/paddor/cztop/wiki) page.
163
123
 
164
124
  ## Performance
165
125
 
166
- Performance should be pretty okay since this is based on czmq-ffi-gen, which is
167
- reasonably thin. CZTop is just a convenience layer.
126
+ CZTop is just a convenience layer on top of the thin czmq-ffi-gen library.
168
127
 
169
128
  Make sure to check out the
170
- [perf](https://gitlab.com/paddor/cztop/blob/master/perf) directory for latency
129
+ [perf](https://github.com/paddor/cztop/blob/master/perf) directory for latency
171
130
  and throughput measurement scripts.
172
131
 
173
132
  ## Usage
174
133
 
175
- See the [examples](https://gitlab.com/paddor/cztop/blob/master/examples) directory for some examples.
134
+ See the [examples](https://github.com/paddor/cztop/blob/master/examples) directory for some examples.
176
135
 
177
136
 
178
137
  ## Contributing
@@ -1,7 +1,6 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'cztop/version'
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/cztop/version"
5
4
 
6
5
  Gem::Specification.new do |spec|
7
6
  spec.name = "cztop"
@@ -9,16 +8,21 @@ Gem::Specification.new do |spec|
9
8
  spec.authors = ["Patrik Wenger"]
10
9
  spec.email = ["paddor@gmail.com"]
11
10
 
12
- spec.summary = %q{CZMQ Ruby binding, based on the generated low-level FFI bindings of CZMQ}
13
- spec.homepage = "https://github.com/paddor/cztop"
11
+ spec.summary = %q{CZMQ Ruby binding based on the generated low-level FFI bindings of CZMQ}
12
+ spec.homepage = "https://rubygems.org/gems/cztop"
14
13
  spec.license = "ISC"
14
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
15
+
16
+ spec.metadata["homepage_uri"] = spec.homepage
17
+ spec.metadata["source_code_uri"] = "https://github.com/paddor/cztop"
18
+ spec.metadata["changelog_uri"] = "https://github.com/paddor/cztop/blob/master/CHANGELOG.md"
15
19
 
16
20
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
21
  spec.bindir = "exe"
18
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
23
  spec.require_paths = ["lib"]
20
24
 
21
- spec.add_runtime_dependency "czmq-ffi-gen", "~> 0.16"
25
+ spec.add_runtime_dependency "czmq-ffi-gen", "~> 1.0"
22
26
 
23
27
  spec.add_development_dependency "bundler"
24
28
  spec.add_development_dependency "rake"
@@ -27,10 +31,4 @@ Gem::Specification.new do |spec|
27
31
  spec.add_development_dependency "rspec-given", "~> 3.8.0"
28
32
  spec.add_development_dependency "pry"
29
33
  spec.add_development_dependency "yard"
30
- spec.add_development_dependency "guard"
31
- spec.add_development_dependency "guard-rspec"
32
- spec.add_development_dependency "guard-yard"
33
- spec.add_development_dependency "guard-shell"
34
- spec.add_development_dependency 'terminal-notifier-guard'
35
- spec.add_development_dependency 'foreman'
36
34
  end
@@ -1,3 +1,3 @@
1
1
  module CZTop
2
- VERSION = "0.14.1"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cztop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrik Wenger
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-25 00:00:00.000000000 Z
11
+ date: 2021-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: czmq-ffi-gen
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.16'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.16'
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -122,90 +122,6 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: guard
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: guard-rspec
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: guard-yard
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: guard-shell
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: terminal-notifier-guard
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: foreman
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ">="
207
- - !ruby/object:Gem::Version
208
- version: '0'
209
125
  description:
210
126
  email:
211
127
  - paddor@gmail.com
@@ -215,21 +131,19 @@ executables:
215
131
  extensions: []
216
132
  extra_rdoc_files: []
217
133
  files:
134
+ - ".github/workflows/main.yml"
218
135
  - ".gitignore"
219
- - ".gitlab-ci.yml"
220
136
  - ".rspec"
137
+ - ".ruby-version"
221
138
  - ".yardopts"
222
139
  - AUTHORS
223
140
  - CHANGES.md
224
141
  - Gemfile
225
- - Guardfile
226
142
  - LICENSE
227
- - Procfile
228
143
  - README.md
229
144
  - Rakefile
230
145
  - bin/console
231
146
  - bin/setup
232
- - ci-scripts/install-deps
233
147
  - cztop.gemspec
234
148
  - examples/ruby_actor/actor.rb
235
149
  - examples/simple_req_rep/rep.rb
@@ -283,10 +197,13 @@ files:
283
197
  - perf/inproc_thru.rb
284
198
  - perf/local_lat.rb
285
199
  - perf/remote_lat.rb
286
- homepage: https://github.com/paddor/cztop
200
+ homepage: https://rubygems.org/gems/cztop
287
201
  licenses:
288
202
  - ISC
289
- metadata: {}
203
+ metadata:
204
+ homepage_uri: https://rubygems.org/gems/cztop
205
+ source_code_uri: https://github.com/paddor/cztop
206
+ changelog_uri: https://github.com/paddor/cztop/blob/master/CHANGELOG.md
290
207
  post_install_message:
291
208
  rdoc_options: []
292
209
  require_paths:
@@ -295,15 +212,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
295
212
  requirements:
296
213
  - - ">="
297
214
  - !ruby/object:Gem::Version
298
- version: '0'
215
+ version: 2.5.0
299
216
  required_rubygems_version: !ruby/object:Gem::Requirement
300
217
  requirements:
301
218
  - - ">="
302
219
  - !ruby/object:Gem::Version
303
220
  version: '0'
304
221
  requirements: []
305
- rubygems_version: 3.0.6
222
+ rubygems_version: 3.2.4
306
223
  signing_key:
307
224
  specification_version: 4
308
- summary: CZMQ Ruby binding, based on the generated low-level FFI bindings of CZMQ
225
+ summary: CZMQ Ruby binding based on the generated low-level FFI bindings of CZMQ
309
226
  test_files: []
@@ -1,32 +0,0 @@
1
- .rspec:
2
- image: ruby:latest
3
- stage: test
4
- variables:
5
- ZMQ_VERSION: "stable"
6
- CZMQ_VERSION: "stable"
7
- before_script:
8
- - export LD_LIBRARY_PATH=$HOME/lib # custom libs (for execution)
9
- - export PKG_CONFIG_PATH=$HOME/lib/pkgconfig # custom libs (for linking)
10
- - env
11
- - ci-scripts/install-deps
12
- - gem install bundler --no-document
13
- - bundle install --path vendor/bundle
14
- script:
15
- - bundle exec rspec
16
- cache:
17
- key: "$CI_JOB_NAME"
18
- paths:
19
- - "vendor/bundle"
20
-
21
-
22
- ruby-latest_with_stable_czmq:
23
- extends: .rspec
24
- variables:
25
- CZMQ_VERSION: "stable"
26
-
27
-
28
- ruby-latest_with_HEAD_czmq:
29
- extends: .rspec
30
- allow_failure: true
31
- variables:
32
- CZMQ_VERSION: "HEAD"
data/Guardfile DELETED
@@ -1,61 +0,0 @@
1
- require "guard/rspec/dsl"
2
-
3
- # Start using
4
- #
5
- # bundle exec guard -g doc & bundle exec guard -g spec
6
- #
7
- # This way you get parallel execution, so
8
- # * documentation is regenerated immediately
9
- # * specs are run immediately
10
-
11
- README_FILE = %r{^README\.md}
12
-
13
- # set these later using help from guard-rspec
14
- ruby_lib_files = nil
15
- spec_files = nil
16
-
17
- # I don't need no shell that hogs my CPU whenever I hit return.
18
- interactor :off
19
-
20
- group :spec do
21
- guard :rspec, cmd: "bundle exec rspec" do
22
- dsl = Guard::RSpec::Dsl.new(self)
23
-
24
- # RSpec files
25
- rspec = dsl.rspec
26
- watch(rspec.spec_helper) { rspec.spec_dir }
27
- watch(rspec.spec_support) { rspec.spec_dir }
28
- watch(rspec.spec_files)
29
- spec_files = rspec.spec_files
30
-
31
- # Ruby files
32
- ruby = dsl.ruby
33
- watch(ruby.lib_files) { |m| rspec.spec.(m[1]) }
34
- ruby_lib_files = ruby.lib_files
35
- end
36
-
37
-
38
- puts "README pattern: %p" % README_FILE
39
- puts "ruby lib files pattern: %p" % ruby_lib_files
40
- puts "spec files pattern: %p" % spec_files
41
- end
42
-
43
- group :syntax_check do
44
- guard :shell do
45
- # check Ruby syntax
46
- watch(Regexp.union(ruby_lib_files, spec_files)) do |m|
47
- puts "Checking Ruby syntax of %p ..." % m[0]
48
- if not system("ruby -c #{m[0]}")
49
- n "#{m[0]} is incorrect", 'Ruby Syntax', :failed
50
- end
51
- end
52
- end
53
- end
54
-
55
- YARD_OPTS = "--use-cache .yardoc/cache.db"
56
-
57
- group :doc do
58
- guard 'yard' do
59
- watch(Regexp.union(README_FILE, ruby_lib_files))
60
- end
61
- end
data/Procfile DELETED
@@ -1,3 +0,0 @@
1
- doc: bundle exec guard -g doc
2
- spec: bundle exec guard -g spec
3
- syntax_check: bundle exec guard -g syntax_check
@@ -1,8 +0,0 @@
1
- #!/bin/sh -x
2
- set -e
3
- mkdir -p vendor
4
- cd vendor
5
- git clone --depth 1 https://gitlab.com/paddor/czmq-ffi-gen
6
- cd czmq-ffi-gen
7
- ci-scripts/install-libzmq
8
- ci-scripts/install-libczmq