GOLF(2gg)

πŸ“¦ version 601.4.41, in ubuntu questing

πŸ’… NAME πŸ’…

SEMI β€” the Golf documentation, but make it messages 🫢


✨ DESCRIPTION ✨

okay bestie sit down because SEMI is literally the moment. it stands for SimplE Message Interface and it's a binary format used to write (pack) and read (unpack) messages β€” and those messages are just key/value pairs hanging out together, looking like this:

<key>=<8 byte length of value><value>

so <key> can be made of any characters you want… except the equal sign ("=") and the exclamation point ("!"), those two are NOT invited. 🚫 and any whitespace chilling around the edges gets trimmed off. bye. βœ‚οΈ

the value is always preceded by an 8-byte length of value β€” that's a binary number in big-endian 64bit format β€” and then the value itself shows up, and then a new line ("\n") at the end, and bestie listen: that newline is not counted in the length. periodt. πŸ’…

there's one special <key> and it's "comment" β€” it's always ignored, it exists purely so you can leave little notes for yourself, general commenting energy only. πŸŽ€

and the way that SEMI implicitly supports binary data with zero need for any kind of encoding?? iconic. because the number of bytes is specified ahead of the value, parsing stays efficient. no cap. πŸ”₯


🌈 SEE ALSO 🌈

  • Messages
  • get-message
  • new-message
  • read-message
  • SEMI
  • write-message
  • See all documentation

okay that's the whole vibe, go pack some messages and slay πŸ’– this was the GOLF(2gg) page from the Development section, brought to you on $DATE at version $VERSION β€” mwah, ily, drink water πŸ¦‹βœ¨

πŸ“¦ where this page comes from