skir 1.1.31 → 1.2.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.
- package/README.md +28 -22
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
+
<img src="https://skir.build/octopus.svg" alt="Skir octopus logo" width="96" height="96" />
|
|
2
3
|
<h1>Skir</h1>
|
|
3
4
|
<p><strong>A modern alternative to Protocol Buffer</strong></p>
|
|
4
5
|
|
|
@@ -8,25 +9,30 @@
|
|
|
8
9
|
|
|
9
10
|
[](https://www.npmjs.com/package/skir)
|
|
10
11
|
[](https://github.com/gepheum/skir/actions)
|
|
11
|
-
|
|
12
|
-

|
|
13
12
|
</div>
|
|
14
13
|
|
|
15
14
|
<br />
|
|
16
15
|
|
|
17
|
-
**Skir** is a
|
|
16
|
+
**Skir** is a declarative language for defining data types, constants, and APIs.
|
|
17
|
+
Write your schema once in a `.skir` file and generate idiomatic, type-safe code in TypeScript, Python, Java, Go, C++, and more.
|
|
18
|
+
|
|
19
|
+
## 🎬 Quick demo
|
|
20
|
+
|
|
21
|
+
[](https://skir.build/greet.mp4)
|
|
18
22
|
|
|
19
23
|
## ✨ Features
|
|
20
24
|
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
25
|
+
- 🧩 **One schema, nine languages, zero friction** - One YAML config, one command, and watch mode that refreshes generated code on every change.
|
|
26
|
+
- 🛡️ **End-to-end type safety** - Shared method and type definitions keep client/server contracts aligned before runtime.
|
|
27
|
+
- ⚡ **SkirRPC + Studio** - Lightweight HTTP RPC with a built-in Studio app for browsing and testing methods.
|
|
28
|
+
- 📦 **GitHub imports** - Import types directly from GitHub repositories to share data structures across projects.
|
|
29
|
+
- 🔁 **Serialization modes** - Dense JSON for APIs/DBs, readable JSON for debugging, and binary for raw performance.
|
|
30
|
+
- 🕰️ **Safe schema evolution** - Built-in checks and clear rules so old and new data remain deserializable.
|
|
31
|
+
- 🧬 **Rust-like enums** - Variants can be constants or carry typed payloads for clean polymorphism.
|
|
32
|
+
- 🔒 **Immutable generated models** - Deep immutability (except C++) with required fields at construction time.
|
|
33
|
+
- 🗂️ **Key-indexed arrays** - Declare arrays like `[User|user_id]` and get fast key-based lookup APIs.
|
|
34
|
+
- 🛠️ **First-class tooling** - VS Code extension + LSP with validation, completion, and auto-formatting.
|
|
35
|
+
- 🧱 **Easy to extend** - Generators are regular NPM modules, so custom generators plug in cleanly.
|
|
30
36
|
|
|
31
37
|
## ⚡ Syntax example
|
|
32
38
|
|
|
@@ -77,7 +83,7 @@ assert(restored == point)
|
|
|
77
83
|
- [Language reference](https://skir.build/docs/language-reference)
|
|
78
84
|
- [Serialization](https://skir.build/docs/serialization)
|
|
79
85
|
- [Schema evolution](https://skir.build/docs/schema-evolution)
|
|
80
|
-
- [
|
|
86
|
+
- [SkirRPC](https://skir.build/docs/skirrpc)
|
|
81
87
|
- [External dependencies](https://skir.build/docs/dependencies)
|
|
82
88
|
- [Coming from Protocol Buffer](https://skir.build/docs/protobuf)
|
|
83
89
|
|
|
@@ -85,12 +91,12 @@ assert(restored == point)
|
|
|
85
91
|
|
|
86
92
|
| Language | Documentation | Example |
|
|
87
93
|
| :--- | :--- | :--- |
|
|
88
|
-
| 🟦 **TypeScript** | [Documentation](https://
|
|
89
|
-
| 🐍 **Python** | [Documentation](https://
|
|
90
|
-
| ⚡ **C++** | [Documentation](https://
|
|
91
|
-
| ☕ **Java** | [Documentation](https://
|
|
92
|
-
| 💜 **Kotlin** | [Documentation](https://
|
|
93
|
-
| 🦀 **Rust** | [Documentation](https://
|
|
94
|
-
| 🐹 **Go** | [Documentation](https://
|
|
95
|
-
| 🎯 **Dart** | [Documentation](https://
|
|
96
|
-
| 🐦 **Swift** | [Documentation](https://
|
|
94
|
+
| 🟦 **TypeScript** | [Documentation](https://skir.build/docs/typescript) | [Example](https://github.com/gepheum/skir-typescript-example) |
|
|
95
|
+
| 🐍 **Python** | [Documentation](https://skir.build/docs/python) | [Example](https://github.com/gepheum/skir-python-example) |
|
|
96
|
+
| ⚡ **C++** | [Documentation](https://skir.build/docs/cpp) | [Example](https://github.com/gepheum/skir-cc-example) |
|
|
97
|
+
| ☕ **Java** | [Documentation](https://skir.build/docs/java) | [Example](https://github.com/gepheum/skir-java-example) |
|
|
98
|
+
| 💜 **Kotlin** | [Documentation](https://skir.build/docs/kotlin) | [Example](https://github.com/gepheum/skir-kotlin-example) |
|
|
99
|
+
| 🦀 **Rust** | [Documentation](https://skir.build/docs/rust) | [Example](https://github.com/gepheum/skir-rust-example) |
|
|
100
|
+
| 🐹 **Go** | [Documentation](https://skir.build/docs/go) | [Example](https://github.com/gepheum/skir-go-example) |
|
|
101
|
+
| 🎯 **Dart** | [Documentation](https://skir.build/docs/dart) | [Example](https://github.com/gepheum/skir-dart-example) |
|
|
102
|
+
| 🐦 **Swift** | [Documentation](https://skir.build/docs/swift) | [Example](https://github.com/gepheum/skir-swift-example) |
|