skir 1.0.0 → 1.0.3

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 CHANGED
@@ -5,9 +5,9 @@
5
5
 
6
6
  *Like Protocol Buffer, but better.*
7
7
 
8
- Skir is a language for representing data types, constants and RPC interfaces. Skir files have the `.skir` extension.
8
+ Skir is a universal language for representing data types, constants and RPC interfaces.
9
9
 
10
- ```rust
10
+ ```d
11
11
  // shapes.skir
12
12
 
13
13
  struct Point {
@@ -16,8 +16,9 @@ struct Point {
16
16
  label: string;
17
17
  }
18
18
 
19
- struct Polyline {
19
+ struct Shape {
20
20
  points: [Point];
21
+ /// A short string describing this shape.
21
22
  label: string;
22
23
  }
23
24
 
@@ -27,421 +28,40 @@ const TOP_RIGHT_CORNER: Point = {
27
28
  label = "top-right corner",
28
29
  };
29
30
 
30
- // Method of an RPC interface
31
- method IsPalindrome(string): bool;
31
+ /// Returns true if no part of the shape's boundary curves inward.
32
+ method IsConvex(Shape): bool;
32
33
  ```
33
34
 
34
- The Skir compiler takes in a set of `.skir` files and generates source files containg the definition of the data types and constants in various programming languages. It also generates functions for serializing the data types to either JSON or a more compact binary format.
35
+ The Skir compiler translates definitions from `.skir` files into idiomatic source code in supported languages such as TypeScript, Python, Java, Kotlin, C++, Dart. This generated code provides typesafe definitions and built-in logic for serializing and deserializing data into either JSON or a more compact binary format.
35
36
 
36
37
  ```python
37
- from skirout import shapes # source file generated by the Skir compiler
38
-
39
- point = shapes.Point(x=3, y=4, label="P")
40
- json = shapes.Point.SERIALIZER.to_json(point)
41
- point = shapes.Point.SERIALIZER.from_json(json)
42
- assert(point == shapes.Point(x=3, y=4, label="P"))
43
- ```
44
-
45
- As of November 2025, Skir has official plugins for:
46
-
47
- * JavaScript/TypeScript: [plugin](https://github.com/gepheum/skir-typescript-gen), [example](https://github.com/gepheum/skir-typescript-example)
48
- * Python: [plugin](https://github.com/gepheum/skir-python-gen), [example](https://github.com/gepheum/skir-python-example)
49
- * C++: [plugin](https://github.com/gepheum/skir-cc-gen), [example](https://github.com/gepheum/skir-cc-example)
50
- * Java: [plugin](https://github.com/gepheum/skir-java-gen), [example](https://github.com/gepheum/skir-java-example)
51
- * Kotlin: [plugin](https://github.com/gepheum/skir-kotlin-gen), [example](https://github.com/gepheum/skir-kotlin-example)
52
- * Dart: [plugin](https://github.com/gepheum/skir-dart-gen), [example](https://github.com/gepheum/skir-dart-example)
53
-
54
- Other official and unofficial plugins will come.
55
-
56
- ## Why Skir
57
-
58
- * Generates code in different languages. This makes Skir ideal for systems where different services are written in different languages but need to exchange structured data.
59
- * Supports serialization to JSON or binary format.
60
- * Serialize now, deserialize in 100 years. Skir is designed with backward and forward compatibility in mind. You can evolve your data schemas by adding new fields or renaming fields. You will still be able to deserialize old values, and you won't break existing applications that use older versions of the schema.
61
- * Generates code that makes no compromise with type safety.
62
- * Allows you to define typesafe interfaces between your services or your backend and your frontend.
63
- * No boilerplate code when you adding a new method to a service.
64
-
65
- ## Language reference
66
-
67
- ### Records
68
-
69
- There are two types of records: structs and enums.
70
-
71
- #### Structs
72
-
73
- Use the keyword `struct` to define a struct, which is a collection of fields of different types.
74
-
75
- The fields of a struct have a name, but during serialization they are actually identified by a number, which can either be set explicitly:
76
-
77
- ```d
78
- struct Point {
79
- x: int = 0;
80
- y: int = 1;
81
- label: string = 2;
82
- }
83
- ```
84
-
85
- or implicitly:
86
-
87
- ```d
88
- struct Point {
89
- x: int; // implicitly set to 0
90
- y: int; // implicitly set to 1
91
- label: string; // implicitly set to 2
92
- }
93
- ```
94
-
95
- If you're not explicitly specifying the field numbers, you must be careful not to change the order of the fields or else you won't be able to deserialize old values.
38
+ # my_project.py
96
39
 
97
- ```d
98
- // BAD: you can't reorder the fields and keep implicit numbering
99
- struct Point {
100
- label: string;
101
- x: int;
102
- y: int;
103
- }
104
-
105
- // GOOD
106
- struct Point {
107
- label: string = 2;
40
+ from skirout.shapes_skir import Point # source file generated by the Skir compiler
108
41
 
109
- // Fine to rename fields
110
- x_coordinate: int = 0;
111
- y_coordinate: int = 1;
112
-
113
- // Fine to add new fields
114
- color: Color = 3;
115
- }
42
+ point = Point(x=3, y=4, label="P")
43
+ json = Point.SERIALIZER.to_json(point)
44
+ point = Point.SERIALIZER.from_json(json)
45
+ assert(point == shapes_skir.Point(x=3, y=4, label="P"))
116
46
  ```
117
47
 
118
- #### Enums
119
-
120
- Enums in Skir are similar to enums in Rust. An enum value is one of several possible variants, and each variant can optionally have data associated with it.
121
-
122
- ```d
123
- // Indicates whether an operation succeeded or failed.
124
- enum OperationStatus {
125
- SUCCESS; // a constant field
126
- error: string; // a wrapper field
127
- }
128
- ```
48
+ ## Documentation
129
49
 
130
- In this example, an `OperationStatus` is one of these 3 things:
50
+ 1. [Why Skir?](docs/introduction.md)
51
+ 2. [Getting started: setup & workflow](docs/setup.md)
52
+ 3. [Language reference](docs/language-reference.md)
53
+ 4. [Serialization formats](docs/serialization.md)
54
+ 5. [Schema evolution & compatibility](docs/compatibility.md)
55
+ 6. [Typesafe RPC services](docs/skir-services.md)
56
+ 7. [Comparisons](docs/comparisons.md)
131
57
 
132
- * the `SUCCESS` constant
133
- * an `error` with a string value
134
- * `UNKNOWN`: a special implicit variant common to all enums
58
+ ## Supported languages
135
59
 
136
- If you need a variant to hold multiple values, wrap them inside a struct:
60
+ * JavaScript/TypeScript: [documentation](https://github.com/gepheum/skir-typescript-gen), [example](https://github.com/gepheum/skir-typescript-example)
61
+ * Python: [documentation](https://github.com/gepheum/skir-python-gen), [example](https://github.com/gepheum/skir-python-example)
62
+ * C++: [documentation](https://github.com/gepheum/skir-cc-gen), [example](https://github.com/gepheum/skir-cc-example)
63
+ * Java: [documentation](https://github.com/gepheum/skir-java-gen), [example](https://github.com/gepheum/skir-java-example)
64
+ * Kotlin: [documentation](https://github.com/gepheum/skir-kotlin-gen), [example](https://github.com/gepheum/skir-kotlin-example)
65
+ * Dart: [documentation](https://github.com/gepheum/skir-dart-gen), [example](https://github.com/gepheum/skir-dart-example)
137
66
 
138
- ```d
139
- struct MoveAction {
140
- x: int32;
141
- y: int32;
142
- }
143
-
144
- enum BoardGameTurn {
145
- PASS;
146
- move: MoveAction;
147
- }
148
- ```
149
-
150
- Like structs, the fields of an enum have a number, and the numbering can be explicit or implicit.
151
-
152
- ```d
153
- enum ExplicitNumbering {
154
- // The numbers don't need to be consecutive.
155
- FOO = 10;
156
- bar: string = 2;
157
- }
158
-
159
- enum ImplicitNumbering {
160
- // Implicit numbering is 1-based.
161
- // 0 is reserved for the special UNKNOWN variant.
162
-
163
- FOO; // = 1
164
- bar: string; // = 2
165
- }
166
- ```
167
-
168
- The fields numbers are used for identifying the variants in the serialization format (not the field names). You must be careful not to change the number of a field, or you won't be able to deserialize old values. For example, if you're using implicit numbering, you must not reorder the fields.
169
-
170
- It is always fine to rename an enum, rename the fields of an enum, or add new fields to an enum.
171
-
172
- #### Nesting records
173
-
174
- You can define a record (struct or enum) within the definition of another record. This is simply for namespacing, and it can help make your `.skir` files more organized.
175
-
176
- ```d
177
- enum Status {
178
- OK;
179
-
180
- struct Error {
181
- message: string;
182
- }
183
- error: Error;
184
- }
185
-
186
- struct Foo {
187
- // Note the dot notation to refer to the nested record.
188
- error: Status.Error;
189
- }
190
- ```
191
-
192
- #### Removed fields
193
-
194
- When removing a field from a struct or an enum, you must mark the removed number in the record definition using the `removed` keyword. The syntax is different whether you're using explicit or implicit numbering:
195
-
196
- ```d
197
- struct ExplicitNumbering {
198
- a: string = 0;
199
- b: string = 1:
200
- d: string = 3;
201
- removed 2, 4;
202
- }
203
-
204
- struct ImplicitNumbering {
205
- a: string;
206
- b: string:
207
- removed;
208
- d: string;
209
- removed;
210
- }
211
- ```
212
-
213
- ### Data types
214
-
215
- #### Primitive types
216
-
217
- * `bool`: true or false
218
- * `int32`: a signed 32-bits integer
219
- * `int64`: a signed 64-bits integer
220
- * `uint64`: an unsigned 64-bits integer
221
- * `float32`: a 32-bits floating point number
222
- * `float64`: a 64-bits floating point number
223
- * `string`: a Unicode string
224
- * `bytes`: a sequence of bytes
225
- * `timestamp`: a specific instant in time represented as an integral number of milliseconds since the Unix epoch, from 100M days before the Unix epoch to 100M days after the Unix epoch
226
-
227
- #### Array type
228
-
229
- Wrap the item type inside square brackets to represent an array of items, e.g. `[string]` or `[User]`.
230
-
231
- ##### Keyed arrays
232
-
233
- If the items are structs and one of the struct fields can be used to identify every item in the array, you can add the field name next to a pipe character: `[Item|key_field]`.
234
-
235
- Example:
236
- ```d
237
- struct User {
238
- id: uint64;
239
- name: string;
240
- }
241
-
242
- struct UserRegistry {
243
- users: [User|id];
244
- }
245
- ```
246
-
247
- Language plugins will generate methods allowing you to perform key lookups in the array using a hash table. For example, in Python:
248
-
249
- ```python
250
- user = user_registry.users.find(user_id)
251
- if user:
252
- do_something(user)
253
- ```
254
-
255
- If the item key is nested within another struct, you can chain the field names like so: `[Item|a.b.c]`.
256
-
257
- The key type must be a primitive type of an enum type. If it's an enum type, add `.kind` at the end of the key chain:
258
-
259
- ```d
260
- enum Weekday {
261
- MONDAY;
262
- TUESDAY;
263
- WEDNESDAY;
264
- THURSDAY;
265
- FRIDAY;
266
- SATURDAY;
267
- SUNDAY;
268
- }
269
-
270
- struct WeekdayWorkStatus {
271
- weekday: Weekday;
272
- working: bool;
273
- }
274
-
275
- struct Employee {
276
- weekly_schedule: [WeekdayWorkStatus|weekday.kind];
277
- }
278
- ```
279
-
280
- #### Optional type
281
-
282
- Add a question mark at the end of a non-optional type to make it optional. An `other_type?` value is either an `other_type` or null.
283
-
284
- ### Constants
285
-
286
- You can define constants of any type with the `const` keyword. The syntax for representing the value is similar to JSON, with the following differences:
287
-
288
- * object keys must not be quoted
289
- * trailing commas are allowed and even encouraged
290
- * strings can be single-quoted or double-quoted
291
- * strings can span multiple lines by escaping new line characters
292
-
293
- ```d
294
- const PI: float64 = 3.14159;
295
-
296
- const LARGE_CIRCLE: Circle = {
297
- center: {
298
- x: 100,
299
- y: 100,
300
- },
301
- radius: 100,
302
- color: {
303
- r: 255,
304
- g: 0,
305
- b: 255,
306
- label: "fuschia",
307
- },
308
- };
309
-
310
- const MULTILINE_STRING: string = 'Hello\
311
- world\
312
- !';
313
-
314
- const SUPPORTED_LOCALES: [string] = [
315
- "en-GB",
316
- "en-US",
317
- "es-MX",
318
- ];
319
-
320
- // Use strings for enum constants.
321
- const REST_DAY: Weekday = "SUNDAY";
322
-
323
- // Use { kind: ..., value: ... } for enum variants holding a value.
324
- const NOT_IMPLEMENTED_ERROR: OperationStatus = {
325
- kind: "error",
326
- value: "Not implemented",
327
- };
328
- ```
329
-
330
- ### Methods
331
-
332
- The `method` keyword allows you to define the signature of a remote method.
333
-
334
- ```d
335
- struct GetUserProfileRequest {
336
- // ...
337
- }
338
-
339
- struct GetUserProfileResponse {
340
- // ...
341
- }
342
-
343
- method GetUserProfile(GetUserProfileRequest): GetUserProfileResponse;
344
- ```
345
-
346
- The request and response can have any type.
347
-
348
- ### Imports
349
-
350
- The `import` statement allows you to import types from another module. You can either specify the names to import, or import the whole module with an alias using the `as` keyword.
351
-
352
- ```d
353
- import Point, Circle from "geometry/geometry.skir";
354
- import * as color from "color.skir";
355
-
356
- struct Rectangle {
357
- top_left: Point;
358
- bottom_right: Point;
359
- }
360
-
361
- struct Disk {
362
- circle: Circle;
363
- fill_color: color.Color; // the type is defined in the "color.skir" module
364
- }
365
- ```
366
-
367
- The path is always relative to the root of the Skir source directory.
368
-
369
- ## Serialization formats
370
-
371
- When serializing a data structure, you can chose one of 3 formats.
372
-
373
- ### JSON, dense flavor
374
-
375
- This is the serialization format you should chose in most cases.
376
-
377
- Structs are serialized as JSON arrays, where the field numbers in the index definition match the indexes in the array. Enum constants are serialized as numbers.
378
-
379
- ```rust
380
- struct User {
381
- user_id: int;
382
- removed;
383
- name: string;
384
- rest_day: Weekday;
385
- pets: [Pet];
386
- nickname: string;
387
- }
388
-
389
- const JOHN_DOE = {
390
- user_id: 400,
391
- name: "John Doe",
392
- rest_day: "SUNDAY",
393
- pets: [
394
- { name: "Fluffy" },
395
- { name: "Fido" },
396
- ],
397
- nickname: "",
398
- }
399
- ```
400
-
401
- The dense JSON representation of `JOHN_DOE` is:
402
-
403
- ```json
404
- [400,0,"John Doe",7,[["Fluffy"],["Fido"]]]
405
- ```
406
-
407
- A couple observations:
408
-
409
- * Removed fields are replaced with zeros
410
- * Trailing fields with default values (`nickname` in this example) are omitted
411
-
412
- This format is not very readable, but it's compact and it allows you to rename fields in your struct definition without breaking backward compatibility.
413
-
414
- ### JSON, readable flavor
415
-
416
- Structs are serialized as JSON objects, and enum constants are serialized as strings.
417
-
418
- The readable JSON representation of `JOHN_DOE` is:
419
-
420
- ```json
421
- {
422
- "user_id": 400,
423
- "name": "Johm Doe",
424
- "rest_day": "SUNDAY",
425
- "pets": [
426
- { "name": "Fluffy" },
427
- { "name": "Fido" }
428
- ]
429
- }
430
- ```
431
-
432
- This format is more verbose and readable, but it should **not** be used if you need persistence, because Skir allows fields to be renamed in record definitions. In other words, never store a readable JSON on disk or in a database.
433
-
434
- ### Binary format
435
-
436
- This format is a bit more compact than JSON, and serialization/deserialization can be faster in languages like C++. Only prefer this format over JSON when the small performance gain is likely to matter, which should be rare.
437
-
438
- ## Skir services
439
-
440
- ### Calling a method with cURL
441
-
442
- ```
443
- curl -X POST \
444
- -H "Content-Type: application/json" \
445
- -d '{"method": "MethodName", "request": {"foo": 3, "bar": []}}' \
446
- http://localhost:8787/myapi
447
- ```
67
+ Other official and unofficial code generators will come.
@@ -16,6 +16,9 @@ export type ParsedArgs = {
16
16
  } | {
17
17
  kind: "help";
18
18
  root?: undefined;
19
+ } | {
20
+ kind: "version";
21
+ root?: undefined;
19
22
  } | {
20
23
  kind: "error";
21
24
  root?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"command_line_parser.d.ts","sourceRoot":"","sources":["../src/command_line_parser.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEN;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA0C3D;AAqCD,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B"}
1
+ {"version":3,"file":"command_line_parser.d.ts","sourceRoot":"","sources":["../src/command_line_parser.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEN;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA8C3D;AAqCD,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B"}
@@ -14,6 +14,9 @@ export function parseCommandLine(args) {
14
14
  printHelp();
15
15
  return { kind: "help" };
16
16
  }
17
+ if (command === "version" || command === "--version" || command === "-v") {
18
+ return { kind: "version" };
19
+ }
17
20
  const validCommands = ["gen", "format", "snapshot", "init"];
18
21
  if (!command || !validCommands.includes(command)) {
19
22
  printError(`Unknown command: ${command}`);
@@ -1 +1 @@
1
- {"version":3,"file":"command_line_parser.js","sourceRoot":"","sources":["../src/command_line_parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command_line_parser.js","sourceRoot":"","sources":["../src/command_line_parser.ts"],"names":[],"mappings":"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"}
@@ -299,29 +299,17 @@ function primitiveTypesAreCompatible(type) {
299
299
  return (type.after === "bool" ||
300
300
  type.after === "int32" ||
301
301
  type.after === "int64" ||
302
- type.after === "uint64" ||
303
- type.after === "float32" ||
304
- type.after === "float64");
302
+ type.after === "hash64");
305
303
  case "int32":
306
- return (type.after === "int32" ||
307
- type.after === "int64" ||
308
- type.after === "uint64" ||
309
- type.after === "float32" ||
310
- type.after === "float64");
311
- case "int64":
312
- return (type.after === "int64" ||
313
- type.after === "float32" ||
314
- type.after === "float64");
315
- case "uint64":
316
- return (type.after === "uint64" ||
317
- type.after === "float32" ||
318
- type.after === "float64");
304
+ return type.after === "int32" || type.after === "int64";
319
305
  case "float32":
320
306
  case "float64":
321
307
  return type.after === "float32" || type.after === "float64";
322
308
  case "timestamp":
323
309
  case "string":
324
310
  case "bytes":
311
+ case "int64":
312
+ case "hash64":
325
313
  return type.after === type.before;
326
314
  }
327
315
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compatibility_checker.js","sourceRoot":"","sources":["../src/compatibility_checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compatibility_checker.js","sourceRoot":"","sources":["../src/compatibility_checker.ts"],"names":[],"mappings":"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"}