Gopher+ protocol specification
http request/response parser for c
Legacy HTTP/1.1 suffers a few issues, see the current RFC errata:
There are issues particularly around how whitespace and obsolete line folding should be handled
It's not as trivial as a few string splits.
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
Public repository for Cantordust Ghidra plugin.
Looks like there's even been a recently open sourced plugin for Ghidra released by Battelle:
Rich binary (de)serialization library for Golang
Honestly, I dislike plaintext formats a lot. It is more accessible because it’s human readable. But, this only extends to humans who happen to speak the language the protocol uses for keywords. While it’s not a huge ask, I still suggest this is mostly not that interesting of a benefit.
Parsing and emitting plaintext formats, meanwhile, is a rabbit hole. It’s human readable which makes you tempted to make it human writable. Should you accept extraneous whitespace? Tabs vs spaces? Terminating new line? Unix or DOS line endings? Etc.
Binary data may seem less accessible, but I blame the libraries. There’s tons of easy ways to parse text. You can use string.split, atoi and scanf in your language of choice. What is there for binary?
In Go, the encoding/binary package actually implements something really cool. A simple reflection-based mechanism that can read and write binary data into a structure in a defined and simple way.
lunixbochs extended this to struc, which adds additional tags for advanced reading and writing of binary structures, including variable length structures. I went further and maybe a bit off into the deep end with Restruct, a similar concept but with a lot more features, designed specifically so I could handle advanced structures quickly.
The end result is that I can define some Go structs with integers, strings, byte arrays and corresponding tags, and be able to serialize and deserialize from those structures to their corresponding binary representation. For an overdone demo of what you could do with Restruct for example, see this (incomplete) PNG demo: https://github.com/go-restruct/restruct/blob/master/formats/... (It is mainly incomplete because I had moved focus to develop a codegen for restruct, to improve runtime performance, although such work has since stalled.)
Changing some files in node_module
1 project | reddit.com/r/webdev | 9 Sep 2022
Show HN: Patch Node Modules Instantly
1 project | news.ycombinator.com | 6 Sep 2022
Is it possible to modify the native code of packages?
1 project | reddit.com/r/reactnative | 18 Jul 2022
Do you stick your modified libraries in your project src?
1 project | reddit.com/r/reactjs | 7 Jul 2022