cztop 0.14.1 → 1.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.
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