1. virt

1.1. QEMU

1.2. KVM

1.3. Hyper-V

1.4. Firecracker

1.5. Docker

1.6. Vagrant

1.7. LXC

1.8. LXD

1.9. containerd

1.10. systemd-nspawn

1.11. VirtualBox

2. Concatenative

2.1. Factor   factor

  • [2023-07-04 Tue] Factor is a cool concatenative lang but unfortunately the C interface (vm/master.h) no longer exists on the master branch.

3. Lisp   lisp

These notes pertain to Lisp. More specifically, ANSI Common Lisp in most places.

4. Rust

4.1. Serde

  • [2023-07-05 Wed]
    important part of the Rust ecosystem, another dtolnay contribution. If you want to program a data format in the Rust ecosystem, this is how you do it.

    The way it works is that you define some special structs, a Serializer and a Deserializer which implement the Serialize and Deserialize traits provided by serde, respectively.

    You can use these structs to provide your public API. The conventional choice is public top-level functions like from-str and to-string. That's it, your serialization library can now read and write your data format as Rust data types.

    enum-representations

    • the default behavior is an externally tagged representation (verbose)

    The docs use strings as core IO when implementing a custom format, but the convention is to implement for T where T is bound by std::io Read or Write trait. Then you can provide a more robust public API (frombytes, fromwriter, etc).

5. C

6. CPP

7. Nu