service_mesh 0.4.1 → 0.4.4

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -31
  3. data/lib/service_mesh/version.rb +1 -1
  4. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fef05ef9dacd492215d76304b8f1938056e862e35c0e0450f7b120213bf7e8d7
4
- data.tar.gz: 97cb3e42dc4797d618d3eacf61aa3d2ba994887aa94ee88d37d90b6b04211fb6
3
+ metadata.gz: 0d1c22ba40201e6531617371be60f030c23976f3a31d06a536114a388c59a9f0
4
+ data.tar.gz: c3e7fd9aedbc639cde6d3727e028799fa51d3222a0006826655084e9f6cb36ea
5
5
  SHA512:
6
- metadata.gz: c7da5185432f80a50b73ec3942c736367455bc337918b7afba2b8393a1575353e54a9fbdb54d98aeaf03c7b0922766490a8da075c8daf4d2a58087044e1e448b
7
- data.tar.gz: 4418d34275bc4dd1d532b4b84f48361967601275181c64c50c5cb7ca7177ddecd9ebdedbb773d813d07e55307efeb24b63c2753a8c6881ea66803e1e619f3127
6
+ metadata.gz: d9ebe5643e51f2aebb1ddb7896344b7db28ec0bced10a6cb759db597ffafea1c558dd7612daa9297d4fb4d36c413349c3b085a692770ea0c60742a892d1beffa
7
+ data.tar.gz: a5d57ce5d40a07b3ce478ba55dead8115c62c7f6bb678115e90fce513ef27128e851d33f71dd408d318fae5411a1eb53b086d1b539b867bec225934ed7558071
data/README.md CHANGED
@@ -1,15 +1,11 @@
1
1
  # service-mesh-ruby
2
2
 
3
- The Ruby contract for the
4
- [Service Mesh API Specification](https://github.com/Paymentbox-com/service-mesh-api),
5
- packaged as the gem `service_mesh`. It holds what every transport and every
3
+ service-mesh-ruby is the Ruby contract for the
4
+ [Service Mesh API Specification](https://github.com/Paymentbox-com/service-mesh-api).
5
+ It is packaged as the gem `service_mesh`. It holds what every transport and every
6
6
  caller must agree on, and nothing that moves bytes. Transports are separate
7
7
  gems that depend on it and implement `Client` and `Runtime`.
8
8
 
9
- The [gRPC Service Mesh API](https://github.com/Paymentbox-com/grpc-service-mesh-api) is a protocol layer that generates code against this contract from protobuf
10
- definitions, through its Ruby library [grpc-service-mesh-ruby](https://github.com/Paymentbox-com/grpc-service-mesh-ruby). Other protocol layers may be implemented
11
- to do the same.
12
-
13
9
  ## Install
14
10
 
15
11
  ```ruby
@@ -21,34 +17,26 @@ Requires Ruby 3.3 or newer. The gem has no runtime dependencies.
21
17
 
22
18
  ## What it Implements
23
19
 
24
- - The value types from the specification: `ServiceMesh::Target`, `ServiceMesh::ServiceMap`,
25
- `ServiceMesh::Message`, `ServiceMesh::Endpoint` and `ServiceMesh::Subscriber`.
20
+ - The value types from the specification: `ServiceMesh::Target`, `ServiceMesh::ServiceMap`,
21
+ `ServiceMesh::Message`, `ServiceMesh::Endpoint`, and `ServiceMesh::Subscriber`.
26
22
  - Target Kinds are implemented as `:route` and `:topic`. A `Target` built with a kind outside the two
27
23
  raises `KindMismatch`.
28
24
  - `Message#payload` is always `Encoding::BINARY`.
29
- - `Target#same_channel?` compares segments and kind and ignores metadata.
25
+ - `Target#same_channel?` compares segments and kind and ignores metadata.
30
26
  - The configuration keys the specification defines: `DEPLOYMENT_GROUP_KEY`,
31
27
  `CONSUMER_GROUP_KEY`, and the value `CONSUMER_GROUP_NONE`.
32
28
  - The errors defined by the specification as `ServiceMesh::Error`: `ServiceMesh::KindMismatch`,
33
- `ServiceMesh::InvalidTarget`, `ServiceMesh::NoDeploymentGroup`.
29
+ `ServiceMesh::InvalidTarget`, and `ServiceMesh::NoDeploymentGroup`.
34
30
  - A conformance suite a transport runs against its own `Client` and
35
31
  `Runtime`.
36
32
 
37
- `Client` and `Runtime` are duck types. The specification names their methods;
38
- a transport satisfies the contract by responding to them and by passing the
33
+ `Client` and `Runtime` are duck types. The specification names their methods,
34
+ and a transport satisfies the contract by responding to them and by passing the
39
35
  conformance suite.
40
36
 
41
- ## Transports
42
-
43
- - NATS: [service-mesh-nats-ruby](https://github.com/Paymentbox-com/service-mesh-nats-ruby),
44
- gem `service_mesh_nats`.
45
-
46
- The Go counterpart of this gem is
47
- [service-mesh-go](https://github.com/Paymentbox-com/service-mesh-go).
48
-
49
37
  ## Usage
50
38
 
51
- A transport that implements Client and Runtime according to the specification will used the
39
+ A transport that implements `Client` and `Runtime` according to the specification uses the
52
40
  types defined here.
53
41
 
54
42
  ```ruby
@@ -84,10 +72,18 @@ RSpec.describe MyTransport do
84
72
  end
85
73
  ```
86
74
 
87
- The suite covers kind checks, the deployment group requirement, request and
88
- reply with metadata both ways, publish, the consumer-group delivery
89
- permutations across two runtimes, a standalone client refusing requests after
90
- close, the runtime's client being the one it was given and closed by stop, the lifecycle state machine, and drain completing and expiring.
75
+ The suite covers:
76
+
77
+ - kind checks
78
+ - the deployment group requirement
79
+ - request and reply with metadata both ways
80
+ - publish
81
+ - the consumer-group delivery permutations across two runtimes
82
+ - a standalone client refusing requests after close
83
+ - the runtime's client being the one it was given and closed by stop
84
+ - the lifecycle state machine
85
+ - drain completing and expiring
86
+
91
87
  Anything that names a transport's own errors, config keys, or address syntax
92
88
  stays in the transport's specs.
93
89
 
@@ -97,10 +93,9 @@ stays in the transport's specs.
97
93
  mise install
98
94
  just install
99
95
  just check # lint, test, build
96
+ just test # tests only
100
97
  ```
101
98
 
102
- ## Tests
103
-
104
- ```
105
- just test
106
- ```
99
+ Releasing is described in [publishing.md](publishing.md). `just bump patch`,
100
+ `just bump minor`, or `just bump major` raises the version in
101
+ `lib/service_mesh/version.rb` and commits that file.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ServiceMesh
4
- VERSION = "0.4.1"
4
+ VERSION = "0.4.4"
5
5
  end
metadata CHANGED
@@ -1,17 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: service_mesh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
+ - Bryant Morrill
7
8
  - Paymentbox
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2026-09-25 00:00:00.000000000 Z
12
+ date: 2026-09-29 00:00:00.000000000 Z
12
13
  dependencies: []
13
14
  description:
14
15
  email:
16
+ - bryantreadmorrill@gmail.com
15
17
  executables: []
16
18
  extensions: []
17
19
  extra_rdoc_files: []