The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 23 Msgpack Open-Source Projects
-
MessagePack for C# (.NET, .NET Core, Unity, Xamarin)
Extremely Fast MessagePack Serializer for C#(.NET, .NET Core, Unity, Xamarin). / msgpack.org[C#]
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
msgspec
A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
msgpack-javascript
@msgpack/msgpack - MessagePack for JavaScript / msgpack.org[JavaScript/TypeScript/ECMA-262]
-
msgpax
High-performance and comprehensive MessagePack implementation for Elixir / msgpack.org[Elixir]
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
I have not done a "desktop" program in 25+ years and never using C++ (or C), since then I'm mostly a web developer (PHP,Elixir, JS, Kotlin etc).
I'm currently doing a C++ audio plugin with the Juce framework.
This website has been a good resource, alongside https://www.learncpp.com
But I was actually close to give up before using those two things:
- https://github.com/nlohmann/json : my plugin use a json api backend and the Juce json implementation is atrocious (apparently because of being born in previous c++ version), but this library is GREAT.
- ChatGPT 4. I'm not sure I would have "succeeded" without it, at least not in a reasonable time frame. ChatGPT 3.5 is slow and does not give good results for my use case but 4 is impressive. And I use in a very dumb way, just posing question in the web UI. I probably could have it directly in MSVC?
Also I must say, for all its flaws, I have a renewed appreciation for doing UI on the web ;)
Project mention: .NET 9 will be putting BinaryFormatter out to pasture | news.ycombinator.com | 2024-02-11
The article describes that the new JIT is a "copy-and-patch JIT" (I've previously heard this called a "splat JIT"). This is a relatively simple JIT architecture where you have essentially pre-compiled blobs of machine code for each interpreter instruction that you patch immediate arguments into by copying over them.
I once wrote an article about very simple JITs, and the first example in my article uses this style: https://blog.reverberate.org/2012/12/hello-jit-world-joy-of-...
I take some issue with this statement, made later in the article, about the pros/cons vs a "full" JIT:
> The big downside with a “full” JIT is that the process of compiling once into IL and then again into machine code is slow. Not only is it slow, but it is memory intensive.
I used to think this was true also, because my main exposure to JITs was the JVM, which is indeed memory-intensive and slow.
But then in 2013, a miraculous thing happened. LuaJIT 2.0 was released, and it was incredibly fast to JIT compile.
LuaJIT is undoubtedly a "full" JIT compiler. It uses SSA form and performs many optimizations (https://github.com/tarantool/tarantool/wiki/LuaJIT-Optimizat...). And yet feels no more heavyweight than an interpreter when you run it. It does not have any noticeable warm up time, unlike the JVM.
Ever since then, I've rejected the idea that JIT compilers have to be slow and heavyweight.
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
Project mention: Htmx, Rust and Shuttle: A New Rapid Prototyping Stack | news.ycombinator.com | 2023-11-01
For a compact message format being sent to browsers, you might look at messagepack, eg with https://github.com/msgpack/msgpack-javascript – it's essentially binary JSON, so it'd be compatible with OpenAPI specs.
I think the ser/des is slower than JSON in most browsers, but the message format is smaller.
Oftentimes, using a query parameter like `?exclude[]=…` or `?include[]=…` or similar to say "only get me these response fields, not the whole object" can be useful for this too (and then you still get JSON back).
After this, your rails s command should work just fine and show the message above. Source
Project mention: DotDict: A simple Python library to make chained attributes possible | news.ycombinator.com | 2023-08-02
Project mention: pyserde: Serialization library on top of dataclasses, inspired by serde-rs | news.ycombinator.com | 2023-11-18
Project mention: Looking for Open-source web app back-end repository written in Golang | /r/golang | 2023-12-08Project using APIBin for examples https://rest.sh
Msgpack related posts
- ΜON – a compact and simple binary object notation
- ΜON – a compact and simple binary object notation
- JSON for Modern C++ 3.11.3 (first release since 473 days)
- pyserde: Serialization library on top of dataclasses, inspired by serde-rs
- Htmx, Rust and Shuttle: A New Rapid Prototyping Stack
- Show HN: REST Alternative to GraphQL and tRPC
- Pydantic 2.0
-
A note from our sponsor - WorkOS
workos.com | 25 Apr 2024
Index
What are some of the best open-source Msgpack projects? This list will help you:
Project | Stars | |
---|---|---|
1 | json | 40,239 |
2 | MessagePack for C# (.NET, .NET Core, Unity, Xamarin) | 5,268 |
3 | tarantool | 3,328 |
4 | msgpack | 2,280 |
5 | arq | 1,904 |
6 | msgspec | 1,857 |
7 | rpclib | 1,598 |
8 | msgpack-javascript | 1,214 |
9 | msgpack-rust | 1,072 |
10 | Msgpack-Cli | 821 |
11 | msgpack-ruby | 755 |
12 | mashumaro | 727 |
13 | pyserde | 651 |
14 | restish | 640 |
15 | Airframe | 623 |
16 | homebrew-extensions | 592 |
17 | go-client | 539 |
18 | remarshal | 518 |
19 | mpack | 510 |
20 | Ceras | 474 |
21 | srsly | 409 |
22 | msgpack.php | 385 |
23 | msgpax | 282 |
Sponsored