libsood

Zig library for Roon Core discovery message, with C-compatible API and WebAssembly.

Commits at fe94ee3dca6db32b79e9905f8536582ce214faad

  1. fe94ee3d Add README.md to Zig distribution I have no idea how it's useful, though. Shota FUJI authored at Shota FUJI comitted at
  2. c41485ec Create README.md It's ready. Shota FUJI authored at Shota FUJI comitted at
  3. f9fac3cf Make a module installable Shota FUJI authored at Shota FUJI comitted at
  4. ad054a51 Man pages for C API and overview Shota FUJI authored at Shota FUJI comitted at
  5. 4819312d Single enum for C API result code There were many duplicates and it was difficult to review. Shota FUJI authored at Shota FUJI comitted at
  6. 70e48bbd WebAssembly API Shota FUJI authored at Shota FUJI comitted at
  7. 6bbc2d16 Make C API constants UPPER_SNAKE_CASE Why did I make them lower_snake_case? Probably failed to perform context switch in my brain. Zig uses lower_snake_case. Shota FUJI authored at Shota FUJI comitted at
  8. 3a5fbaab Delete ipv4_subnet module This is not this library's responsibility. OSes and/or language library (std or network one) should provide this. Shota FUJI authored at Shota FUJI comitted at
  9. 3f331393 Simplify Message module Both for efficienty and for simplicity. Message struct is less bloated now. Shota FUJI authored at Shota FUJI comitted at
  10. 0dfcedf8 Simpler to use API for Zig and C `parse` and property iterator is simple, but it's error-prone in the case user is processing illegal message that has invalid payload at tail. Most of the time this library is used, payload is SOOD response message sent by Roon server, with fixed set of properties. Validating it and returning typed-struct is secure and easy to use. Shota FUJI authored at Shota FUJI comitted at
  11. b2a4e65e C API for discovery I'm not including ipv4_subnet because IPv4 address handling differs between OSes (I found out during writing examples/basic.c) and I have no idea how I design the API. Zig's std uses `[4]u8` across platforms. Perhaps it's better to remove the module entirely? This library offloads transport things to users so this "get broadcast address for the interface" does not fit here, maybe. Shota FUJI authored at Shota FUJI comitted at
  12. 7cbca911 Simplify build file Shota FUJI authored at Shota FUJI comitted at
  13. ea2be90d Zig API for discovery and IPv4 helpers Shota FUJI authored at Shota FUJI comitted at
  14. 664805ab Message parser/serializer Shota FUJI authored at Shota FUJI comitted at
  15. 049ec8e5 WebAssembly build setup As a more secure and portable way. Shota FUJI authored at Shota FUJI comitted at
  16. cbcb4aad Foundation for Zig project with C library generation Shota FUJI authored at Shota FUJI comitted at
  17. 84eec46f Base style for text files Shota FUJI authored at Shota FUJI comitted at
  18. cbc149a3 Create license files New files to be added require license text. By creating license files beforehand, later commits will be more concise by having only files relavant to the change. Shota FUJI authored at Shota FUJI comitted at