watson
msgpack
watson | msgpack | |
---|---|---|
6 | 3 | |
270 | 2,289 | |
- | - | |
1.3 | 5.1 | |
3 months ago | 2 months ago | |
Go | Go | |
Apache License 2.0 | BSD 2-clause "Simplified" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
watson
- Watson: Wasted but Turing-Incomplete Stack-Based Object Notation
- I made an esoteric language for configuration files
- So there is this
- WATSON: Wasted but Amazing Turing-incomplete Stack-based Object Notation
- 352 points in 4 hours
- I guess our ground pounding detective is in our computer now. There is no escape
msgpack
-
Rob Pike: Gobs of data (2011)
Someone made a benchmark of serialization libraries in go [1], and I was surprised to see gobs is one of the slowest ones, specially for decoding. I suspect part of the reason is that the API doesn't not allow reusing decoders [2]. From my explorations it seems like both JSON [3], message-pack [4] and CBOR [5] are better alternatives.
By the way, in Go there are a like a million JSON encoders because a lot of things in the std library are not really coded for maximum performance but more for easy of usage, it seems. Perhaps this is the right balance for certain things (ex: the http library, see [6]).
There are also a bunch of libraries that allow you to modify a JSON file "in place", without having to fully deserialize into structs (ex: GJSON/SJSON [7] [8]). This sounds very convenient and more efficient that fully de/serializing if we just need to change the data a little.
--
1: https://github.com/alecthomas/go_serialization_benchmarks
2: https://github.com/golang/go/issues/29766#issuecomment-45492...
--
3: https://github.com/goccy/go-json
4: https://github.com/vmihailenco/msgpack
5: https://github.com/fxamacker/cbor
--
6: https://github.com/valyala/fasthttp#faq
--
7: https://github.com/tidwall/gjson
8: https://github.com/tidwall/sjson
-
save/load state and pointers
As a side note you cannot do JSON, since it cannot do "int" keys. I tested vmihailenco/msgpack and it works fine - you can try that if you want a JSON-like experience.
- How can we umarshal a Big JSON effectively?
What are some alternatives?
bfgo - A fast, optimizing, BF compiler, interpreter, and REPL. Also includes a BF formatter and minifier! Implemented in Go. Batteries included.
msgpack-ruby - MessagePack implementation for Ruby / msgpack.org[Ruby]
go-starfish - *><> is an esolang derrived from ><>.
go-client - Nvim Go client