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.
Files changed (2) hide show
  1. package/README.md +28 -22
  2. 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
  [![npm](https://img.shields.io/npm/v/skir?style=flat-square)](https://www.npmjs.com/package/skir)
10
11
  [![build](https://github.com/gepheum/skir/workflows/Build/badge.svg?style=flat-square)](https://github.com/gepheum/skir/actions)
11
-
12
- ![quick-example](https://github.com/user-attachments/assets/1bfb84d1-11cd-48d2-92c5-3f27344d954e)
13
12
  </div>
14
13
 
15
14
  <br />
16
15
 
17
- **Skir** is a universal language for representing data types, constants, and RPC interfaces. Define your schema once in a `.skir` file and generate idiomatic, type-safe code in TypeScript, Python, Java, C++, and more.
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
+ [![Watch the quick demo](https://github.com/user-attachments/assets/1bfb84d1-11cd-48d2-92c5-3f27344d954e)](https://skir.build/greet.mp4)
18
22
 
19
23
  ## ✨ Features
20
24
 
21
- - 💎 **Single source of truth** - Define your data types and APIs once and share them between your backend, frontend, and microservices.
22
- - 🌍 **Multi-language** - First-class support for TypeScript, Python, C++, Java, Kotlin, Rust, Go, Dart and Swift.
23
- - ✍️ **Idiomatic code gen** - Generates code that feels native to each language.
24
- - 🍃 **Effortless serialization** - Skir generates functions to serialize your data to JSON or binary, so you never have to write parsing code manually.
25
- - 🦋 **Schema evolution** - Simple guidelines and built-in checks to evolve your schema without breaking backward compatibility.
26
- - 🤝 **RPCs with end-to-end type safety** - Like tRPC, but for every language. Call your backend functions directly from your frontend or microservices with full compile-time safety.
27
- - 🛠️ **Delightful developer experience** - Automatic recompilation in watch mode, built-in code formatter, official VSCode extension.
28
- - 📦 **Built-in package manager** - Import types from other GitHub repositories to easily share common data structures across projects.
29
- - 🍃 **Easy setup** - Get started with `npx skir init`, manage your entire project configuration from a single YAML file.
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
- - [RPC services](https://skir.build/docs/services)
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://github.com/gepheum/skir-typescript-gen) | [Example](https://github.com/gepheum/skir-typescript-example) |
89
- | 🐍 **Python** | [Documentation](https://github.com/gepheum/skir-python-gen) | [Example](https://github.com/gepheum/skir-python-example) |
90
- | ⚡ **C++** | [Documentation](https://github.com/gepheum/skir-cc-gen) | [Example](https://github.com/gepheum/skir-cc-example) |
91
- | ☕ **Java** | [Documentation](https://github.com/gepheum/skir-java-gen) | [Example](https://github.com/gepheum/skir-java-example) |
92
- | 💜 **Kotlin** | [Documentation](https://github.com/gepheum/skir-kotlin-gen) | [Example](https://github.com/gepheum/skir-kotlin-example) |
93
- | 🦀 **Rust** | [Documentation](https://github.com/gepheum/skir-rust-gen) | [Example](https://github.com/gepheum/skir-rust-example) |
94
- | 🐹 **Go** | [Documentation](https://github.com/gepheum/skir-go-gen) | [Example](https://github.com/gepheum/skir-go-example) |
95
- | 🎯 **Dart** | [Documentation](https://github.com/gepheum/skir-dart-gen) | [Example](https://github.com/gepheum/skir-dart-example) |
96
- | 🐦 **Swift** | [Documentation](https://github.com/gepheum/skir-swift-gen) | [Example](https://github.com/gepheum/skir-swift-example) |
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) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skir",
3
- "version": "1.1.31",
3
+ "version": "1.2.0",
4
4
  "description": "",
5
5
  "homepage": "https://skir.build/",
6
6
  "bugs": {