Skip to content

Commit 0249688

Browse files
committed
Some fixes for the release blog post
1 parent 53004a1 commit 0249688

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

_posts/2020-10-16-kaitai-struct-v0.9-released.md

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,41 +13,43 @@ categories: news
1313
After a lot of time and effort, Kaitai project is happy to announce
1414
release of new major version of Kaitai Struct, declarative markup
1515
language to describe various binary data structures — binary file
16-
formats, network stream packets, etc.
16+
formats, network packets, etc.
1717

1818
The basic idea of Kaitai Struct is that a particular format can be
19-
described using Kaitai Struct language (in a `.ksy` file), which then
20-
can be compiled using `kaitai-struct-compiler` into source files in
21-
one of the supported programming languages. These modules will include
22-
a generated code for a parser that can read described data structure
23-
from a file / stream and provide access to its contents in a nice,
19+
described using Kaitai Struct language (in a `.ksy` file, that stands
20+
for Kaitai Struct YAML), which then can be compiled using
21+
`kaitai-struct-compiler` into source files in one of the supported
22+
programming languages. These modules will include a generated
23+
code for a parser that can read described data structure from a
24+
file / stream and provide access to its contents in a nice,
2425
easy-to-comprehend API.
2526

2627
With the previous 0.8 release, Kaitai project celebrated 1000 stars on GitHub,
2728
and until 0.9 version, it has collected more than [2000 stars](https://github.com/kaitai-io/kaitai_struct/stargazers).
2829
Thank you all for your support!
2930

3031
This version introduces C++11 target (which uses smart pointers),
31-
several handy features (like `valid`ations and little-endian bit integers),
32-
fixes a lot of bugs and includes quite a few infrastructure improvements.
32+
several handy features (like `valid`ations and little-endian "bit-sized
33+
types"), fixes a lot of bugs and includes quite a few infrastructure
34+
improvements.
3335

3436
## Release highlights
3537

3638
* New targets support:
37-
* Python with [Construct](https://construct.readthedocs.io) library
38-
* HTML - intended for documentation, preliminary support
39-
* Nim - entry-level support (51% tests pass score)
40-
* New KSY language features:
39+
* Python with [Construct](https://construct.readthedocs.io) library ([#377](https://github.com/kaitai-io/kaitai_struct/issues/377))
40+
* HTML - intended for documentation, preliminary support ([ec21b](https://github.com/kaitai-io/kaitai_struct_compiler/commit/ec21bdf62bcc9211e514dd8413ed5f6714a8e6bc))
41+
* Nim - entry-level support (51% tests pass score) ([#619](https://github.com/kaitai-io/kaitai_struct/issues/619))
42+
* New KS language features:
4143
* `doc-ref` supports list of references ([#269](https://github.com/kaitai-io/kaitai_struct/issues/269))
4244
* `meta/tags` allows specification of multiple tags to allow better navigation in the format gallery ([#572](https://github.com/kaitai-io/kaitai_struct/issues/572))
4345
* Allow accessing nested types using `::` syntax: `foo::bar` ([#275](https://github.com/kaitai-io/kaitai_struct/issues/275))
4446
* Implement parsed data validations using `valid` key ([#435](https://github.com/kaitai-io/kaitai_struct/issues/435))
4547
* Implement compile-time `sizeof` and `bitsizeof` operators ([#84](https://github.com/kaitai-io/kaitai_struct/issues/84))
4648
* Type-based: `sizeof<u4>`, `bitsizeof<b13>`, `sizeof<user_type>`
4749
* Value-based: `file_header._sizeof`, `flags._bitsizeof` (`file_header`, `flags` are fields defined in the current type)
48-
* Implement little-endian bit-sized integers ([docs](https://doc.kaitai.io/user_guide.html#bit-ints-le))
49-
* Support choosing endianness using `le` / `be` suffix: `type: b12le`, `type: b1be`
50-
* Add `meta/bit-endian` key for selecting default bit endianness (`le` / `be`)
50+
* Implement little-endian-based bit-sized types ([docs](https://doc.kaitai.io/user_guide.html#bit-ints-le))
51+
* Support choosing endianness of bit-sized types using `le` / `be` suffix: `type: b12le`, `type: b1be`
52+
* Add `meta/bit-endian` key for selecting default bit endianness (`le` / `be`) ([#155](https://github.com/kaitai-io/kaitai_struct/issues/155))
5153
* Expression language:
5254
* Forced byte array and true array literals ([#371](https://github.com/kaitai-io/kaitai_struct/issues/371)) and
5355
empty typed array literals ([#372](https://github.com/kaitai-io/kaitai_struct/issues/372))
@@ -63,7 +65,7 @@ fixes a lot of bugs and includes quite a few infrastructure improvements.
6365
* C++: add C++11 mode
6466
* Add `--cpp-standard` CLI option: pass `--cpp-standard 11` to enable C++11 mode (`98` is default)
6567
* C++11 target:
66-
* uses `#pragma once` (instead of `#ifndef FOO_H_` header guards)
68+
* uses `#pragma once` (instead of `#ifndef FOO_H_` header guards) ([25fb1](https://github.com/kaitai-io/kaitai_struct_compiler/commit/25fb1eee61d07bdc8b199445776836ce9a6606ef))
6769
* uses `std::unique_ptr<foo>` for owning pointers, raw pointers `foo*` for non-owning
6870
* supports array literals
6971
* `--no-auto-read` implemented for C++
@@ -72,6 +74,7 @@ fixes a lot of bugs and includes quite a few infrastructure improvements.
7274
* Runtime API changes:
7375
* Add exceptions `Validation{Not{Equal,AnyOf},{Less,Greater}Than,Expr}Error` inheriting from common ancestor `ValidationFailedError` - thrown on failed validations defined with `valid` or `contents` key ([#435](https://github.com/kaitai-io/kaitai_struct/issues/435))
7476
* Add method `read_bits_int_le` for parsing little-endian bit-sized integers ([docs](https://doc.kaitai.io/user_guide.html#bit-ints-le))
77+
* Allow third-party `process`ors to be used ([#457](https://github.com/kaitai-io/kaitai_struct/issues/457)).
7578
* Deprecated classes and methods:
7679
* ~~`ensure_fixed_contents`~~ &#x27F6; explicit `if` that asserts `readBytes(n)` to be equal to the expected `n`-byte array (throwing `ValidationNotEqualError` if it fails)
7780
* ~~`UnexpectedDataError`~~ &#x27F6; `ValidationNotEqualError`
@@ -99,12 +102,19 @@ fixes a lot of bugs and includes quite a few infrastructure improvements.
99102
Gradle plugin](https://github.com/valery1707/kaitai-gradle-plugin)
100103
* Infrastructure updates:
101104
* Unstable binary builds are available for all platforms after every CI build at Bintray ([#63](https://github.com/kaitai-io/kaitai_struct/issues/63))
102-
* KSY language reference replaced with [documentation](https://doc.kaitai.io/ksy_diagram.html) generated from JSON schema
105+
* KS language reference replaced with [documentation](https://doc.kaitai.io/ksy_diagram.html) generated from [the JSONSchema](https://github.com/kaitai-io/ksy_schema)
103106
* [https://formats.kaitai.io/](https://formats.kaitai.io/) is rebuilt automatically with CI/CD
104107
* Brand new modular CI/CD system for compiler, underlying
105108
CI-agnostic, working on multiple different OSes in parallel
106109
(Linux, Windows, macOS) and showing status at [https://ci.kaitai.io/](https://ci.kaitai.io/)
107110
* Generate test assertion specs from language-agnostic [KST specs](https://doc.kaitai.io/kst.html)
111+
* Related projects:
112+
* Added an [official library of compression algorithms](https://github.com/kaitai-io/kaitai_compress) to be used in `process`.
113+
* Created [a list of ![awesome](https://camo.githubusercontent.com/1997c7e760b163a61aba3a2c98f21be8c524be29/68747470733a2f2f617765736f6d652e72652f62616467652e737667) projects related to Kaitai Struct](https://github.com/kaitai-io/awesome-kaitai)
114+
* Alternative compiler implementations specific for target languages, intended for easier integration into them, have been started:
115+
* [ksc-rs](https://github.com/Mingun/ksc-rs) for Rust
116+
* [kaitaigo](https://github.com/cugu/kaitaigo) for Go
117+
* [nimitai](https://github.com/sealmove/nimitai) for nim
108118

109119
</div>
110120

0 commit comments

Comments
 (0)