summaryrefslogtreecommitdiff
path: root/README.md
blob: a38f465fc030e25394084813e658f82b556cb50e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
**Just testing things.**

Nothing crazy here. I put little experiments and tests I do here so I can
reference them later if I need to.

> [!NOTE]  
> Check `shell.nix` to see the software and dependencies that are used
> in these examples. If you use Nix just do `nix-shell shell.nix`.

Every test has it's own `Makefile` so please check that before you try
running it.

> [!IMPORTANT]  
> Some of the examples are specific to certain operating systems and
> they will not work everywhere. Take this into account. This code is
> also written in the most explicit way and lacks massively when it
> comes to checking of errors etc.

|                                        | Compiler   | What does it do?                                               |
|:----------------------------------------|:------------|:----------------------------------------------------------------:|
| [c-asm](./c-asm)                       | clang-17   | Calls a function written in ASM from C code.                   |
| [c-embed](./c-embed)                   | clang-17   | Embedding external resources in compiled binary.               |
| [c-signals](./c-signals)               | clang-17   | Uses SIGUSR1 and SIGUSR2 as IPC mechanism.                     |
| [c-structs](./c-structs)               | clang-17   | Saves and reads structs in/from binary files.                  |
| [zig-c-interop](./zig-c-interop)       | zig-0.11.0 | Uses functions written in C from Zig code.                     |
| [zig-ppm](./zig-ppm)                   | zig-0.11.0 | Creates an image with random pixels in PPM image format.       |
| [zig-struct-json](./zig-struct-json)   | zig-0.11.0 | Serialization of a struct into JSON and then reading it back.  |
| [zig-telnet](./zig-telnet)             | zig-0.11.0 | Connects to Redis server like it is a basic telnet server.     |
| [zig-x11](./zig-x11)                   | zig-0.11.0 | Uses X11 to create a basic window without any bindings needed. |
| [zig-http](./zig-http)                 | zig-0.11.0 | Basic example of a HTTP 1.1 server without any routing etc.    |
| [zig-x11-box](./zig-x11-box)           | zig-0.11.0 | Move a box around with arrow keys with Xlib and Zig.           |
| [zig-kv-store](./zig-kv-store)         | zig-0.11.0 | Simple Key-value store that mimics memcached written in Zig.   |
| [zig-wad](./zig-wad)                   | zig-0.11.0 | Reads doom.wad and extracts the identification header.         |
| [zig-os-props](./zig-os-props)         | zig-0.11.0 | Detects properties of the target operating system.             |
| [zig-tlv-encoding](./zig-tlv-encoding) | zig-0.13.0 | Naive implementation of TLV encoding in Zig.                   |
| [zig-embed](./zig-embed)               | zig-0.13.0 | Embedding external resources in compiled binary.               |
| [zig-struct-bin](./zig-struct-bin)     | zig-0.13.0 | Save a struct into binary file and then reading it back.       |
| [zig-elf](./zig-elf)                   | zig-0.14.0 | Read execution header of Elf64 format in Zig.                  |

## License

[probe](https://github.com/mitjafelicijan/probe) was written by [Mitja
Felicijan](https://mitjafelicijan.com) and is released under the BSD
zero-clause license, see the LICENSE file for more information.