4 Commits

Author SHA1 Message Date
Mike Voronov
4bdc881c7a
chore: change license to AGPL-3 (#844) 2024-06-26 12:34:36 +03:00
Ivan Boldyrev
bab0c002f5
chore: Rust channel update dedicated to ENIAC Day (#822)
It requires updating minor version of curve25519-dalek and ahash crates in the
Cargo.lock.  If you need to use older version of nightly rustc, use
curve25519-dalek-4.1.1 and ahash-07.8/0.8.9.  It affects Cargo.lock only.
2024-02-23 04:29:22 +07:00
Ivan Boldyrev
325eea7e91
feat(interface)!: Use MessagePack for calls (#780)
Top-level structs use multicodec-prefixed MessagePack, the nested
structures (arguments, tetraplets) use just ordinary MessagePack.

* JS-compatible `CallResults`

Binary format implementations like `rmp-serde` do not bother converting keys from strings, unlike `serde_json`.
So, we use `CallResults` with string keys, as JS client cannot produce anything else.

---------

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2024-01-08 18:01:58 +07:00
Ivan Boldyrev
771d42dec4
feat(data)!: flexible serialization formats (#757)
New crate air_interpreter_sede introduces a flexible serialization and deserialization infrastructure.

Low level API: the Format trait and related. It includes simple and universal mechanisms for serializing any possible (e.g. implementing the Serde traits) value.

High level API: Representation trait and related. It allows declaring representation types that can serialize and deserialize only certain types (for example, InterpreterDataRepr can serialize only the InterpreterData, but deserialize InterpreterData and Versions` types), producing newtype values as serialization results.

The serialized representation of CallResults now contains byte arrays, not strings, because the new infrastructure serializes to byte arrays only.

Also, the basic support for multicodecs is added.
2023-12-15 21:23:09 +07:00