@zio.dev/zio-blocks 0.0.55 → 0.0.56
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.
- package/guides/async-getting-started.md +1 -1
- package/guides/query-dsl-extending.md +1 -1
- package/guides/query-dsl-fluent-builder.md +1 -1
- package/guides/query-dsl-reified-optics.md +1 -1
- package/guides/query-dsl-sql.md +1 -1
- package/guides/telemetry-guide.md +3 -3
- package/guides/zio-schema-migration.md +6 -6
- package/index.md +58 -34
- package/package.json +1 -1
- package/reference/async.md +2 -2
- package/reference/chunk.md +3 -3
- package/reference/codegen/index.md +1 -1
- package/reference/combinators.md +4 -4
- package/reference/config/config-source.md +2 -2
- package/reference/config/formats.md +3 -3
- package/reference/config/index.md +7 -7
- package/reference/config/rollout.md +1 -1
- package/reference/context.md +1 -1
- package/reference/data-migration.md +1 -1
- package/reference/datastar/index.md +2 -2
- package/reference/datastar.md +2 -2
- package/reference/docs.md +2 -2
- package/reference/endpoint/endpoint.md +1 -0
- package/reference/endpoint/index.md +4 -4
- package/reference/html.md +2 -2
- package/reference/htmx/index.md +2 -2
- package/reference/http-model/model.md +2 -2
- package/reference/http-model/schema-codecs.md +1 -1
- package/reference/http-model/schema.md +2 -2
- package/reference/jwt.md +1 -1
- package/reference/maybe.md +2 -2
- package/reference/media-type.md +2 -2
- package/reference/mux.mdx +2 -2
- package/reference/openapi.md +3 -3
- package/reference/projection.md +3 -3
- package/reference/resource-management/index.md +1 -1
- package/reference/resource-management/resource.md +2 -2
- package/reference/resource-management/scope.md +1 -1
- package/reference/resource-management/wire.md +2 -2
- package/reference/ringbuffer/index.mdx +2 -2
- package/reference/schema/built-in-codecs/avro.md +2 -2
- package/reference/schema/built-in-codecs/bson.md +9 -9
- package/reference/schema/built-in-codecs/csv.md +2 -2
- package/reference/schema/built-in-codecs/json/index.md +2 -2
- package/reference/schema/built-in-codecs/json/json.md +1 -0
- package/reference/schema/built-in-codecs/messagepack.md +3 -3
- package/reference/schema/built-in-codecs/thrift.md +2 -2
- package/reference/schema/built-in-codecs/toon.md +3 -3
- package/reference/schema/built-in-codecs/yaml.md +2 -2
- package/reference/schema/codec.md +10 -10
- package/reference/schema/dynamic-schema.md +3 -3
- package/reference/schema/schema-evolution/as.md +4 -4
- package/reference/schema/schema-evolution/into.md +2 -2
- package/reference/schema/schema-expr.md +2 -2
- package/reference/schema/type-class-derivation.md +1 -1
- package/reference/smithy.md +1 -1
- package/reference/sql/db-codec-deriver.md +3 -3
- package/reference/sql/db-codec.md +11 -11
- package/reference/sql/db-con.md +4 -4
- package/reference/sql/db-connection.md +1 -1
- package/reference/sql/db-tx.md +2 -2
- package/reference/sql/ddl.md +1 -1
- package/reference/sql/index.md +6 -6
- package/reference/sql/repo.md +5 -5
- package/reference/sql/sql-dialect.md +1 -1
- package/reference/sql/sql-logger.md +1 -1
- package/reference/sql/sql-name-mapper.md +3 -3
- package/reference/sql/table-metadata.md +3 -3
- package/reference/sql/table.md +10 -10
- package/reference/sql/transactor-zio.md +1 -1
- package/reference/sql/transactor.md +8 -8
- package/reference/sql-zio.md +2 -2
- package/reference/streams/core/pipeline.md +17 -17
- package/reference/streams/core/sink.md +4 -4
- package/reference/streams/core/stream.md +3 -3
- package/reference/streams/execution-and-compatibility/async-execution.md +1 -1
- package/reference/streams/index.md +3 -3
- package/reference/streams/primitives/reader.md +25 -25
- package/reference/streams/primitives/writer.md +18 -18
- package/reference/telemetry/index.md +3 -3
- package/reference/telemetry/otel/index.md +1 -1
- package/sidebars.js +261 -219
- package/reference/mux.md +0 -254
|
@@ -28,7 +28,7 @@ By the end of this tutorial, you will be able to:
|
|
|
28
28
|
To add the async module to your project, include this dependency in your `build.sbt`:
|
|
29
29
|
|
|
30
30
|
```scala
|
|
31
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-async" % "0.0.
|
|
31
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-async" % "0.0.56"
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
Then bring the full DSL into scope at the top of each file you use it from:
|
|
@@ -52,7 +52,7 @@ None of these can be expressed with `SchemaExpr` alone. You could generate the S
|
|
|
52
52
|
This guide builds on [Part 1: Expressions](./query-dsl-reified-optics.md) and [Part 2: SQL Generation](./query-dsl-sql.md). You should be comfortable building `SchemaExpr` values and translating them to SQL.
|
|
53
53
|
|
|
54
54
|
```scala
|
|
55
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.
|
|
55
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.56"
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
```scala
|
|
@@ -57,7 +57,7 @@ In this guide, we solve both problems: bridge extensions eliminate `.toExpr`, an
|
|
|
57
57
|
This guide builds on [Part 1: Expressions](./query-dsl-reified-optics.md), [Part 2: SQL Generation](./query-dsl-sql.md), and [Part 3: Extending the Expression Language](./query-dsl-extending.md).
|
|
58
58
|
|
|
59
59
|
```scala
|
|
60
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.
|
|
60
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.56"
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
## Domain Setup
|
|
@@ -43,7 +43,7 @@ In this guide, we'll solve this by using ZIO Blocks' `SchemaExpr` and reified op
|
|
|
43
43
|
Add the ZIO Blocks Schema dependency:
|
|
44
44
|
|
|
45
45
|
```scala
|
|
46
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.
|
|
46
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.56"
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
```scala
|
package/guides/query-dsl-sql.md
CHANGED
|
@@ -43,7 +43,7 @@ This is fragile, repetitive, and vulnerable to SQL injection. Every new query sh
|
|
|
43
43
|
This guide builds on [Part 1: Expressions](./query-dsl-reified-optics.md). You should be comfortable building `SchemaExpr` values with optic operators (`===`, `>`, `&&`, etc.).
|
|
44
44
|
|
|
45
45
|
```scala
|
|
46
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.
|
|
46
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.56"
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
```scala
|
|
@@ -11,16 +11,16 @@ If you're looking for API signatures and quick copy-paste snippets, the [Telemet
|
|
|
11
11
|
|
|
12
12
|
```scala
|
|
13
13
|
// Core: logging, tracing, metrics
|
|
14
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-telemetry" % "0.0.
|
|
14
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-telemetry" % "0.0.56"
|
|
15
15
|
|
|
16
16
|
// OTLP JSON export over HTTP (JVM only)
|
|
17
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-telemetry-otel" % "0.0.
|
|
17
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-telemetry-otel" % "0.0.56"
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
The core module also cross-builds for Scala.js:
|
|
21
21
|
|
|
22
22
|
```scala
|
|
23
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-telemetry" % "0.0.
|
|
23
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-telemetry" % "0.0.56"
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
---
|
|
@@ -38,13 +38,13 @@ libraryDependencies += "dev.zio" %% "zio-schema-avro" % "1.x.x"
|
|
|
38
38
|
**After (ZIO Blocks Schema):**
|
|
39
39
|
|
|
40
40
|
```scala
|
|
41
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.
|
|
41
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.56"
|
|
42
42
|
// Optional codec modules:
|
|
43
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema-avro" % "0.0.
|
|
44
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema-thrift" % "0.0.
|
|
45
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema-bson" % "0.0.
|
|
46
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema-messagepack" % "0.0.
|
|
47
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema-toon" % "0.0.
|
|
43
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema-avro" % "0.0.56"
|
|
44
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema-thrift" % "0.0.56"
|
|
45
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema-bson" % "0.0.56"
|
|
46
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema-messagepack" % "0.0.56"
|
|
47
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema-toon" % "0.0.56"
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
Key points:
|
package/index.md
CHANGED
|
@@ -27,7 +27,7 @@ Add a block and use it. Nothing else to wire up—no runtime to install, no effe
|
|
|
27
27
|
type to adopt:
|
|
28
28
|
|
|
29
29
|
```scala
|
|
30
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.
|
|
30
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.56"
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
```scala
|
|
@@ -57,7 +57,7 @@ Every block is published under the `dev.zio` organization. Most cross-build for
|
|
|
57
57
|
adopt Scala 3 on your timeline, not ours. The handful of modules that are narrower
|
|
58
58
|
say so in their own row.
|
|
59
59
|
|
|
60
|
-
###
|
|
60
|
+
### Meta Programming
|
|
61
61
|
|
|
62
62
|
JSON support is built into `zio-blocks-schema`; the modules below add further formats.
|
|
63
63
|
|
|
@@ -72,33 +72,33 @@ JSON support is built into `zio-blocks-schema`; the modules below add further fo
|
|
|
72
72
|
| [TOON Codec](./reference/schema/built-in-codecs/toon.md) | `zio-blocks-schema-toon` | JVM · JS | 2.13 · 3.x | Token-oriented notation 30–60% smaller than JSON, tuned for LLM prompts |
|
|
73
73
|
| [XML Codec](./reference/schema/built-in-codecs/xml.md) | `zio-blocks-schema-xml` | JVM · JS | 2.13 · 3.x | Zero-dependency XML serialization with fluent navigation and patching |
|
|
74
74
|
| [YAML Codec](./reference/schema/built-in-codecs/yaml.md) | `zio-blocks-schema-yaml` | JVM · JS | 2.13 · 3.x | Human-readable YAML serialization with JSON interop |
|
|
75
|
+
| [TypeId](./reference/typeid.md) | `zio-blocks-typeid` | JVM · JS | 2.13 · 3.x | Compile-time type identity with rich metadata |
|
|
76
|
+
|
|
77
|
+
### Resource Management
|
|
75
78
|
|
|
76
|
-
|
|
79
|
+
All of these ship in `zio-blocks-scope`.
|
|
77
80
|
|
|
78
81
|
| Block | Artifact | Platform | Scala | Description |
|
|
79
82
|
|-------|----------|----------|-------|-------------|
|
|
80
|
-
| [
|
|
81
|
-
| [
|
|
82
|
-
| [
|
|
83
|
-
| [
|
|
84
|
-
| [
|
|
85
|
-
| [
|
|
83
|
+
| [Scope](./reference/resource-management/index.md) | `zio-blocks-scope` | JVM · JS | 2.13 · 3.x | Compile-time safe resource boundaries that keep values from escaping their lifetime |
|
|
84
|
+
| [Resource](./reference/resource-management/resource.md) | `zio-blocks-scope` | JVM · JS | 2.13 · 3.x | Lazy recipes that pair acquisition with finalization, composable with `map`, `flatMap`, and `zip` |
|
|
85
|
+
| [Unscoped](./reference/resource-management/unscoped.md) | `zio-blocks-scope` | JVM · JS | 2.13 · 3.x | Marker typeclass for plain data that can safely leave a scope |
|
|
86
|
+
| [DeferHandle](./reference/resource-management/defer-handle.md) | `zio-blocks-scope` | JVM · JS | 2.13 · 3.x | Handle returned by `Scope.defer` for cancelling a registered finalizer |
|
|
87
|
+
| [Finalizer](./reference/resource-management/finalizer.md) | `zio-blocks-scope` | JVM · JS | 2.13 · 3.x | Minimal capability interface for registering cleanup actions |
|
|
88
|
+
| [Finalization](./reference/resource-management/finalization.md) | `zio-blocks-scope` | JVM · JS | 2.13 · 3.x | Result of running a scope's finalizers, including any cleanup errors |
|
|
86
89
|
|
|
87
|
-
###
|
|
90
|
+
### Dependency Injection
|
|
88
91
|
|
|
89
92
|
| Block | Artifact | Platform | Scala | Description |
|
|
90
93
|
|-------|----------|----------|-------|-------------|
|
|
91
|
-
| [
|
|
92
|
-
| [
|
|
93
|
-
| [Ring Buffer](./reference/ringbuffer/index.mdx) | `zio-blocks-ringbuffer` | JVM · JS | 2.13 · 3.x | Lock-free bounded ring buffers (SPSC, SPMC, MPSC, MPMC) |
|
|
94
|
-
| [Mux](./reference/mux.mdx) | `zio-blocks-mux` | JVM · JS | 2.13 · 3.x | Thread-safe multiplexer for HTTP/2, QUIC, and WebSocket-style protocols |
|
|
94
|
+
| [Wire](./reference/resource-management/wire.md) | `zio-blocks-scope` | JVM · JS | 2.13 · 3.x | Compile-time safe recipes for constructing a service and its dependencies |
|
|
95
|
+
| [Context](./reference/context.md) | `zio-blocks-context` | JVM · JS | 2.13 · 3.x | Type-indexed heterogeneous collections |
|
|
95
96
|
|
|
96
|
-
###
|
|
97
|
+
### Configuration & Feature Flags
|
|
97
98
|
|
|
98
99
|
| Block | Artifact | Platform | Scala | Description |
|
|
99
100
|
|-------|----------|----------|-------|-------------|
|
|
100
|
-
| [
|
|
101
|
-
| [Config](./reference/config/index.md) | `zio-blocks-config` | JVM · JS | 2.13 · 3.x | Typed configuration loading, feature flags, and rollout rules |
|
|
101
|
+
| [Configuration](./reference/config/index.md) | `zio-blocks-config` | JVM · JS | 2.13 · 3.x | Typed configuration loading, feature flags, and rollout rules |
|
|
102
102
|
| [Config YAML](./reference/config/formats.md) | `zio-blocks-config-yaml` | JVM · JS | 2.13 · 3.x | YAML source adapter for `ConfigSource` |
|
|
103
103
|
| [Config JSON](./reference/config/formats.md) | `zio-blocks-config-json` | JVM · JS | 2.13 · 3.x | JSON source adapter for `ConfigSource` |
|
|
104
104
|
| [Config HOCON](./reference/config/formats.md) | `zio-blocks-config-hocon` | JVM · JS | 2.13 · 3.x | HOCON source adapter for `ConfigSource` |
|
|
@@ -107,35 +107,59 @@ JSON support is built into `zio-blocks-schema`; the modules below add further fo
|
|
|
107
107
|
|
|
108
108
|
| Block | Artifact | Platform | Scala | Description |
|
|
109
109
|
|-------|----------|----------|-------|-------------|
|
|
110
|
+
| [MediaType](./reference/media-type.md) | `zio-blocks-mediatype` | JVM · JS | 2.13 · 3.x | Type-safe IANA media types with 2,600+ predefined types |
|
|
110
111
|
| [HTTP Model](./reference/http-model/index.md) | `zio-blocks-http-model` | JVM · JS | 2.13 · 3.x | Pure HTTP data model with URL parsing, headers, cookies, and forms |
|
|
111
112
|
| [HTTP Model Schema](./reference/http-model/schema.md) | `zio-blocks-http-model-schema` | JVM · JS | 2.13 · 3.x | Schema-based typed access to the HTTP model |
|
|
112
113
|
| [Endpoint](./reference/endpoint/index.md) | `zio-blocks-endpoint` | JVM · JS | 2.13 · 3.x | Type-safe HTTP endpoint descriptors with composable codecs and typed auth |
|
|
113
|
-
| [HTML](./reference/html.md) | `zio-blocks-html` | JVM · JS | 2.13 · 3.x | Type-safe HTML templating with XSS protection |
|
|
114
|
-
| [HTMX](./reference/htmx/index.md) | `zio-blocks-http-htmx` | JVM · JS | 3.x | Typed HTMX DSL for compile-time-checked HTMX attributes |
|
|
115
|
-
| [Datastar](./reference/datastar/index.md) | `zio-blocks-datastar` | JVM · JS | 3.x | Typed Datastar attribute and signal DSL, plus the SSE events that patch a live page |
|
|
116
114
|
| [OpenAPI](./reference/openapi.md) | `zio-blocks-openapi` | JVM · JS | 2.13 · 3.x | Type-safe OpenAPI 3.1 specification generation and rendering |
|
|
117
115
|
| [JWT](./reference/jwt.md) | `zio-blocks-jwt` | JVM · JS | 2.13 · 3.x | Zero-dependency JWT signing and verification with HMAC, RSA, ECDSA and EdDSA support |
|
|
116
|
+
| [HTML](./reference/html.md) | `zio-blocks-html` | JVM · JS | 2.13 · 3.x | Type-safe HTML templating with XSS protection |
|
|
117
|
+
| [Datastar](./reference/datastar/index.md) | `zio-blocks-datastar` | JVM · JS | 3.x | Typed Datastar attribute and signal DSL, plus the SSE events that patch a live page |
|
|
118
|
+
| [HTMX](./reference/htmx/index.md) | `zio-blocks-http-htmx` | JVM · JS | 3.x | Typed HTMX DSL for compile-time-checked HTMX attributes |
|
|
118
119
|
|
|
119
|
-
###
|
|
120
|
+
### Data Types
|
|
120
121
|
|
|
121
122
|
| Block | Artifact | Platform | Scala | Description |
|
|
122
123
|
|-------|----------|----------|-------|-------------|
|
|
123
|
-
| [
|
|
124
|
-
| [
|
|
125
|
-
| [
|
|
124
|
+
| [Chunk](./reference/chunk.md) | `zio-blocks-chunk` | JVM · JS | 2.13 · 3.x | High-performance immutable indexed sequences with zero-boxing builders |
|
|
125
|
+
| [Maybe](./reference/maybe.md) | `zio-blocks-maybe` | JVM · JS | 2.13 · 3.x | Low-allocation optional values backed by `null` |
|
|
126
|
+
| [Combinators](./reference/combinators.md) | `zio-blocks-combinators` | JVM · JS | 2.13 · 3.x | Compile-time composition and decomposition of tuples, eithers, and unions |
|
|
127
|
+
|
|
128
|
+
### Concurrency
|
|
129
|
+
|
|
130
|
+
| Block | Artifact | Platform | Scala | Description |
|
|
131
|
+
|-------|----------|----------|-------|-------------|
|
|
132
|
+
| [Async](./reference/async.md) | `zio-blocks-async` | JVM · JS | 2.13 · 3.x | Zero-allocation asynchronous effect type with direct-style `await` |
|
|
133
|
+
| [Mux](./reference/mux.mdx) | `zio-blocks-mux` | JVM · JS | 2.13 · 3.x | Thread-safe multiplexer for HTTP/2, QUIC, and WebSocket-style protocols |
|
|
134
|
+
| [RingBuffer](./reference/ringbuffer/index.mdx) | `zio-blocks-ringbuffer` | JVM · JS | 2.13 · 3.x | Lock-free bounded ring buffers (SPSC, SPMC, MPSC, MPMC) |
|
|
135
|
+
|
|
136
|
+
### Streams
|
|
126
137
|
|
|
127
|
-
|
|
138
|
+
| Block | Artifact | Platform | Scala | Description |
|
|
139
|
+
|-------|----------|----------|-------|-------------|
|
|
140
|
+
| [Streams](./reference/streams/index.md) | `zio-blocks-streams` | JVM · JS | 2.13 · 3.x | Pull-based streaming with typed errors, zero boxing, and synchronous or asynchronous execution |
|
|
141
|
+
|
|
142
|
+
### Telemetry
|
|
128
143
|
|
|
129
144
|
| Block | Artifact | Platform | Scala | Description |
|
|
130
145
|
|-------|----------|----------|-------|-------------|
|
|
131
146
|
| [Telemetry](./reference/telemetry/index.md) | `zio-blocks-telemetry` | JVM · JS | 2.13 · 3.x | Zero-dependency OpenTelemetry-aligned tracing, logging, and metrics |
|
|
132
147
|
| [OTLP Export](./reference/telemetry/otel/index.md) | `zio-blocks-telemetry-otel` | JVM | 2.13 · 3.x | OTLP exporters bridging telemetry signals to an OpenTelemetry collector |
|
|
133
148
|
|
|
149
|
+
### Persistence
|
|
150
|
+
|
|
151
|
+
| Block | Artifact | Platform | Scala | Description |
|
|
152
|
+
|-------|----------|----------|-------|-------------|
|
|
153
|
+
| [SQL Module](./reference/sql/index.md) | `zio-blocks-sql` | JVM · JS | 3.x | Type-safe JDBC wrapper with schema-derived codecs and a CRUD repository |
|
|
154
|
+
| [ZIO Integration](./reference/sql-zio.md) | `zio-blocks-sql-zio` | JVM | 3.x | ZIO integration with `ZIO.attemptBlocking` and `ZLayer` |
|
|
155
|
+
| [Data Migration](./reference/data-migration.md) | `zio-blocks-data-migration` | JVM · JS | 3.x | Typed, online database schema migrations in three execution models, with no hand-written SQL |
|
|
156
|
+
| [Projection](./reference/projection.md) | `zio-blocks-projection` | JVM | 3.x | Event-sourced projections with per-entity SQLite storage |
|
|
157
|
+
|
|
134
158
|
### Tooling & Codegen
|
|
135
159
|
|
|
136
160
|
| Block | Artifact | Platform | Scala | Description |
|
|
137
161
|
|-------|----------|----------|-------|-------------|
|
|
138
|
-
| [
|
|
162
|
+
| [Code Generation](./reference/codegen/index.md) | `zio-blocks-codegen` | JVM | 2.13 · 3.x | Generic Scala code generation IR and emitter |
|
|
139
163
|
| [Docs](./reference/docs.md) | `zio-blocks-markdown` | JVM · JS | 2.13 · 3.x | GitHub Flavored Markdown parsing, rendering, and programmatic construction |
|
|
140
164
|
| [Smithy](./reference/smithy.md) | `zio-blocks-smithy` | JVM | 2.13 · 3.x | Smithy IDL parser and AST library for API modeling |
|
|
141
165
|
|
|
@@ -185,10 +209,10 @@ val thriftCodec = Schema[Person].derive(ThriftFormat) // Thrift
|
|
|
185
209
|
### Installation
|
|
186
210
|
|
|
187
211
|
```scala
|
|
188
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.
|
|
212
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.56"
|
|
189
213
|
```
|
|
190
214
|
|
|
191
|
-
See the [
|
|
215
|
+
See the [Meta Programming](#meta-programming) rows above for the optional format modules.
|
|
192
216
|
|
|
193
217
|
### Example
|
|
194
218
|
|
|
@@ -277,7 +301,7 @@ Scope.global.scoped { scope =>
|
|
|
277
301
|
### Installation
|
|
278
302
|
|
|
279
303
|
```scala
|
|
280
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-scope" % "0.0.
|
|
304
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-scope" % "0.0.56"
|
|
281
305
|
```
|
|
282
306
|
|
|
283
307
|
### Example
|
|
@@ -307,7 +331,7 @@ Scope.global.scoped { scope =>
|
|
|
307
331
|
### Learn More
|
|
308
332
|
|
|
309
333
|
- [Compile-Time Resource Safety with Scope](./guides/compile-time-resource-safety-with-scope.md) — the step-by-step tutorial, from basic resource management through dependency injection
|
|
310
|
-
- [Resource Management
|
|
334
|
+
- [Resource Management reference](./reference/resource-management/index.md) — `Scope`, `Resource`, `Wire`, `Unscoped`, and finalization order
|
|
311
335
|
|
|
312
336
|
---
|
|
313
337
|
|
|
@@ -349,7 +373,7 @@ val computed: Int =
|
|
|
349
373
|
### Installation
|
|
350
374
|
|
|
351
375
|
```scala
|
|
352
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-async" % "0.0.
|
|
376
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-async" % "0.0.56"
|
|
353
377
|
```
|
|
354
378
|
|
|
355
379
|
### Example
|
|
@@ -414,10 +438,10 @@ val frag = sql"SELECT * FROM user WHERE email = ${"alice@example.com"}"
|
|
|
414
438
|
### Installation
|
|
415
439
|
|
|
416
440
|
```scala
|
|
417
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-sql" % "0.0.
|
|
441
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-sql" % "0.0.56"
|
|
418
442
|
|
|
419
443
|
// Optional ZIO integration
|
|
420
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-sql-zio" % "0.0.
|
|
444
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-sql-zio" % "0.0.56"
|
|
421
445
|
```
|
|
422
446
|
|
|
423
447
|
### Example
|
|
@@ -488,7 +512,7 @@ large enough to have several pages start from an overview:
|
|
|
488
512
|
- [Schema Evolution](./reference/schema/schema-evolution/index.md) - one-way and bidirectional type-safe conversions
|
|
489
513
|
- [Telemetry](./reference/telemetry/index.md) - tracing, logging, metrics, and OTLP export
|
|
490
514
|
- [SQL](./reference/sql/index.md) - codecs, fragments, tables, repositories, transactors, and dialects
|
|
491
|
-
- [Resource Management
|
|
515
|
+
- [Resource Management](./reference/resource-management/index.md) - `Scope`, `Resource`, `Wire`, `Unscoped`, and finalization
|
|
492
516
|
- [Streams](./reference/streams/index.md) - `Stream`, `Pipeline`, `Sink`, and the low-level readers and writers
|
|
493
517
|
- [Endpoint](./reference/endpoint/index.md) - endpoint descriptors, HTTP codecs, route patterns, and typed auth
|
|
494
518
|
- [HTTP Model](./reference/http-model/index.md) - the pure HTTP data model and its schema-based typed access
|
package/package.json
CHANGED
package/reference/async.md
CHANGED
|
@@ -39,13 +39,13 @@ The type is aimed at infrastructure-level code: places that need a first-class a
|
|
|
39
39
|
Add the module to your build:
|
|
40
40
|
|
|
41
41
|
```scala
|
|
42
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-async" % "0.0.
|
|
42
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-async" % "0.0.56"
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
In a cross-built project, use `%%%` so the same line resolves for both JVM and Scala.js:
|
|
46
46
|
|
|
47
47
|
```scala
|
|
48
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-async" % "0.0.
|
|
48
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-async" % "0.0.56"
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
The module publishes for JVM and Scala.js, on Scala 2.13 and Scala 3. That single coordinate is all you add: it brings `zio-blocks-combinators` with it, along with `dotty-cps-async` on Scala 3 or `scala-reflect` on Scala 2, both of which power the direct-style rewrite.
|
package/reference/chunk.md
CHANGED
|
@@ -86,13 +86,13 @@ The practical result is that Chunk gives you a sequence type that's genuinely ef
|
|
|
86
86
|
Chunk is available in the core `zio-blocks` library:
|
|
87
87
|
|
|
88
88
|
```scala
|
|
89
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-chunk" % "0.0.
|
|
89
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-chunk" % "0.0.56"
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
For Scala.js support:
|
|
93
93
|
|
|
94
94
|
```scala
|
|
95
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-chunk" % "0.0.
|
|
95
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-chunk" % "0.0.56"
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
Supports Scala 2.13.x and 3.x.
|
|
@@ -489,7 +489,7 @@ import zio.blocks.chunk.Chunk
|
|
|
489
489
|
import java.util.Arrays
|
|
490
490
|
|
|
491
491
|
val javaIter = Arrays.asList(1, 2, 3).iterator()
|
|
492
|
-
// javaIter: Iterator[Int] = java.util.Arrays$ArrayItr@
|
|
492
|
+
// javaIter: Iterator[Int] = java.util.Arrays$ArrayItr@2bb97c7f
|
|
493
493
|
val chunk = Chunk.fromJavaIterator(javaIter)
|
|
494
494
|
// chunk: Chunk[Int] = IndexedSeq(1, 2, 3)
|
|
495
495
|
```
|
|
@@ -81,7 +81,7 @@ OpenAPI → Scala Smithy → Scala Protobuf → Scala JSON Schema → S
|
|
|
81
81
|
Add the library to your project:
|
|
82
82
|
|
|
83
83
|
```scala
|
|
84
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-codegen" % "0.0.
|
|
84
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-codegen" % "0.0.56"
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
Supported Scala versions: 2.13.x and 3.x
|
package/reference/combinators.md
CHANGED
|
@@ -29,13 +29,13 @@ All typeclasses are derived automatically via compile-time resolution and provid
|
|
|
29
29
|
Add the following to your `build.sbt`:
|
|
30
30
|
|
|
31
31
|
```sbt
|
|
32
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-combinators" % "0.0.
|
|
32
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-combinators" % "0.0.56"
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
For cross-platform projects (Scala.js):
|
|
36
36
|
|
|
37
37
|
```sbt
|
|
38
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-combinators" % "0.0.
|
|
38
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-combinators" % "0.0.56"
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Supported platforms:
|
|
@@ -286,7 +286,7 @@ import zio.blocks.combinators.Eithers
|
|
|
286
286
|
val e = summon[Eithers.Eithers[Int, String]]
|
|
287
287
|
// e: Eithers[Int, String] {
|
|
288
288
|
type Out >: Either[Int, String] <: Either[Int, String]
|
|
289
|
-
} = zio.blocks.combinators.Eithers$Eithers$AtomicInstance@
|
|
289
|
+
} = zio.blocks.combinators.Eithers$Eithers$AtomicInstance@60379196
|
|
290
290
|
val input = Left(42): Either[Int, String]
|
|
291
291
|
// input: Either[Int, String] = Left(42)
|
|
292
292
|
e.separate(e.combine(input))
|
|
@@ -379,7 +379,7 @@ import zio.blocks.combinators.Unions
|
|
|
379
379
|
val u = summon[Unions.Unions.WithOut[Int, String, Int | String]]
|
|
380
380
|
// u: Unions[Int, String] {
|
|
381
381
|
type Out >: Int | String <: Int | String
|
|
382
|
-
} = zio.blocks.combinators.Unions$Unions$UnionInstance@
|
|
382
|
+
} = zio.blocks.combinators.Unions$Unions$UnionInstance@65686c52
|
|
383
383
|
u.separate(42: Int | String)
|
|
384
384
|
// res14: Either[Int, String] = Left(42)
|
|
385
385
|
u.separate("hello": Int | String)
|
|
@@ -62,7 +62,7 @@ An absent key yields `Maybe.absent` rather than throwing or returning `null`:
|
|
|
62
62
|
|
|
63
63
|
```scala
|
|
64
64
|
source.get("db.user")
|
|
65
|
-
// res1: Maybe[SourceValue[String]] = zio.blocks.maybe.Absent$@
|
|
65
|
+
// res1: Maybe[SourceValue[String]] = zio.blocks.maybe.Absent$@53f42f8c
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
`ConfigSource.MapSource` is the underlying case class, so you can pattern match on it or construct it directly when you want the concrete type rather than the trait.
|
|
@@ -363,7 +363,7 @@ loaded.provenanceOf("port")
|
|
|
363
363
|
// rawValue = "5432"
|
|
364
364
|
// )
|
|
365
365
|
loaded.provenanceOf("nonexistent")
|
|
366
|
-
// res21: Maybe[Provenance] = zio.blocks.maybe.Absent$@
|
|
366
|
+
// res21: Maybe[Provenance] = zio.blocks.maybe.Absent$@53f42f8c
|
|
367
367
|
```
|
|
368
368
|
|
|
369
369
|
### Dumping Configuration
|
|
@@ -51,7 +51,7 @@ Writing `tag: null` to unset a value from a lower-priority layer does not work.
|
|
|
51
51
|
`config-yaml` reads YAML through the `zio-blocks-schema-yaml` reader:
|
|
52
52
|
|
|
53
53
|
```scala
|
|
54
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-config-yaml" % "0.0.
|
|
54
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-config-yaml" % "0.0.56"
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
Importing the adapter package makes the constructor available on the `ConfigSource` companion:
|
|
@@ -117,7 +117,7 @@ Non-scalar mapping keys are skipped rather than rejected, since a dotted key nam
|
|
|
117
117
|
`config-json` reads JSON through the `zio-blocks-schema-json` parser:
|
|
118
118
|
|
|
119
119
|
```scala
|
|
120
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-config-json" % "0.0.
|
|
120
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-config-json" % "0.0.56"
|
|
121
121
|
```
|
|
122
122
|
|
|
123
123
|
The import and the constructor mirror the YAML adapter:
|
|
@@ -160,7 +160,7 @@ A malformed document yields `ConfigError.InvalidValue` with a 100-character exce
|
|
|
160
160
|
`config-hocon` has its own parser with no external dependency, and it is the only adapter that supports substitutions and includes:
|
|
161
161
|
|
|
162
162
|
```scala
|
|
163
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-config-hocon" % "0.0.
|
|
163
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-config-hocon" % "0.0.56"
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
### Parsing a String
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: index
|
|
3
|
-
title: "
|
|
4
|
-
sidebar_label: "
|
|
3
|
+
title: "Configuration & Feature Flags"
|
|
4
|
+
sidebar_label: "Configuration & Feature Flags"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
`zio.blocks.config` loads typed configuration from string-keyed sources, tracks where every resolved value came from, and evaluates feature flags with percentage-based rollouts. The module is synchronous and zero-dependency. Core types: `ConfigSource`, `ConfigDecoder`, `ConfigError`, `Provenance`, `FlagSource`, `StaticFlag`, `DynamicFlag`, `Rollout`. The shapes at the center of the module:
|
|
@@ -43,21 +43,21 @@ Most configuration libraries make you choose between two unpleasant options: a s
|
|
|
43
43
|
The core module provides sources, decoding, and flags:
|
|
44
44
|
|
|
45
45
|
```scala
|
|
46
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-config" % "0.0.
|
|
46
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-config" % "0.0.56"
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
Each file format is a separate artifact, so you depend only on the ones you use:
|
|
50
50
|
|
|
51
51
|
```scala
|
|
52
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-config-yaml" % "0.0.
|
|
53
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-config-json" % "0.0.
|
|
54
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-config-hocon" % "0.0.
|
|
52
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-config-yaml" % "0.0.56"
|
|
53
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-config-json" % "0.0.56"
|
|
54
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-config-hocon" % "0.0.56"
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
For Scala.js, use `%%%` instead of `%%`:
|
|
58
58
|
|
|
59
59
|
```scala
|
|
60
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-config" % "0.0.
|
|
60
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-config" % "0.0.56"
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
Supported Scala versions: 2.13.x and 3.x.
|
|
@@ -141,7 +141,7 @@ Five methods cover parsing, evaluation, and diagnostics. `Rollout.select` is the
|
|
|
141
141
|
Rollout.select("on@prod/50%; off", "prod", 10)
|
|
142
142
|
// res9: Maybe[String] = "on"
|
|
143
143
|
Rollout.select("@@@not-valid", "prod", 10)
|
|
144
|
-
// res10: Maybe[String] = zio.blocks.maybe.Absent$@
|
|
144
|
+
// res10: Maybe[String] = zio.blocks.maybe.Absent$@53f42f8c
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
Because a parse failure is indistinguishable from a non-match, use `Rollout.select` only where a malformed expression should behave as "no decision". Parse explicitly when you need to know.
|
package/reference/context.md
CHANGED
|
@@ -116,7 +116,7 @@ val config = ctx.get[Config] // Compile-time proof it exists
|
|
|
116
116
|
Add the ZIO Blocks Context module to your `build.sbt`:
|
|
117
117
|
|
|
118
118
|
```scala
|
|
119
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-context" % "0.0.
|
|
119
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-context" % "0.0.56"
|
|
120
120
|
```
|
|
121
121
|
|
|
122
122
|
## Construction
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: data-migration
|
|
3
|
-
title: "
|
|
3
|
+
title: "Data Migration"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
The `zio.blocks.data.migration` module provides three execution models for evolving database schemas online. It builds on [`Migration[A, B]`](./schema/migration.md) for the typed row transformation and [`Repo[E, ID]`](./sql/index.md) for database access. No hand-written SQL, no XML, no Liquibase-style migration files.
|
|
@@ -41,13 +41,13 @@ This module closes each of those:
|
|
|
41
41
|
Add the module to your build:
|
|
42
42
|
|
|
43
43
|
```scala
|
|
44
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-datastar" % "0.0.
|
|
44
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-datastar" % "0.0.56"
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
For Scala.js, use `%%%` instead of `%%`:
|
|
48
48
|
|
|
49
49
|
```scala
|
|
50
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-datastar" % "0.0.
|
|
50
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-datastar" % "0.0.56"
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
Supported Scala versions: 2.13.x and 3.x.
|
package/reference/datastar.md
CHANGED
|
@@ -9,10 +9,10 @@ title: "Datastar"
|
|
|
9
9
|
|
|
10
10
|
```scala
|
|
11
11
|
// JVM
|
|
12
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-datastar" % "0.0.
|
|
12
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-datastar" % "0.0.56"
|
|
13
13
|
|
|
14
14
|
// Scala.js
|
|
15
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-datastar" % "0.0.
|
|
15
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-datastar" % "0.0.56"
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
## Signals
|
package/reference/docs.md
CHANGED
|
@@ -41,13 +41,13 @@ Markdown is the de facto standard for documentation, READMEs, and formatted text
|
|
|
41
41
|
Add the dependency to your `build.sbt`:
|
|
42
42
|
|
|
43
43
|
```sbt
|
|
44
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-markdown" % "0.0.
|
|
44
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-markdown" % "0.0.56"
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
For Scala.js, use the cross-build syntax:
|
|
48
48
|
|
|
49
49
|
```sbt
|
|
50
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-markdown" % "0.0.
|
|
50
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-markdown" % "0.0.56"
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
Supported Scala versions: 2.13.x and 3.x
|
|
@@ -41,18 +41,18 @@ The endpoint module is a cross-platform library (JVM + Scala.js). Add the depend
|
|
|
41
41
|
|
|
42
42
|
**JVM (Scala 3.x):**
|
|
43
43
|
```scala
|
|
44
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-endpoint" % "0.0.
|
|
44
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-endpoint" % "0.0.56"
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
**Scala.js (Scala 3.x):**
|
|
48
48
|
```scala
|
|
49
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-endpoint" % "0.0.
|
|
49
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-endpoint" % "0.0.56"
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
**For Scala 3.7+**, the module name is rewritten to `zio-blocks-next-endpoint`:
|
|
53
53
|
```scala
|
|
54
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-next-endpoint" % "0.0.
|
|
55
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-next-endpoint" % "0.0.
|
|
54
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-next-endpoint" % "0.0.56" // JVM
|
|
55
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-next-endpoint" % "0.0.56" // Scala.js
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
Supported Scala versions: 3.x (Scala 3 only — the endpoint module uses Scala 3-only DSL and macro code).
|
package/reference/html.md
CHANGED
|
@@ -77,13 +77,13 @@ Template engines with runtime parsing add overhead and complexity:
|
|
|
77
77
|
Add to `build.sbt`:
|
|
78
78
|
|
|
79
79
|
```
|
|
80
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-html" % "0.0.
|
|
80
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-html" % "0.0.56"
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
For Scala.js projects, use `%%%`:
|
|
84
84
|
|
|
85
85
|
```
|
|
86
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-html" % "0.0.
|
|
86
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-html" % "0.0.56"
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
Supported Scala versions: 2.13.x and 3.x
|
package/reference/htmx/index.md
CHANGED
|
@@ -52,10 +52,10 @@ Add the HTMX module to your project dependencies:
|
|
|
52
52
|
|
|
53
53
|
```scala
|
|
54
54
|
// JVM
|
|
55
|
-
libraryDependencies += "dev.zio" %% "zio-blocks-http-htmx" % "0.0.
|
|
55
|
+
libraryDependencies += "dev.zio" %% "zio-blocks-http-htmx" % "0.0.56"
|
|
56
56
|
|
|
57
57
|
// Scala.js
|
|
58
|
-
libraryDependencies += "dev.zio" %%% "zio-blocks-http-htmx" % "0.0.
|
|
58
|
+
libraryDependencies += "dev.zio" %%% "zio-blocks-http-htmx" % "0.0.56"
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
Supported Scala versions: Scala 3.x. The module is cross-compiled for JVM and Scala.js.
|