msgspec VS ustore

Compare msgspec vs ustore and see what are their differences.

msgspec

A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML (by jcrist)

ustore

Multi-Modal Database replacing MongoDB, Neo4J, and Elastic with 1 faster ACID solution, with NetworkX and Pandas interfaces, and bindings for C 99, C++ 17, Python 3, Java, GoLang πŸ—„οΈ (by unum-cloud)
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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
msgspec ustore
31 15
1,868 488
- 2.5%
8.6 9.6
about 1 month ago 8 months ago
Python C++
BSD 3-clause "New" or "Revised" License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

msgspec

Posts with mentions or reviews of msgspec. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-01.
  • Htmx, Rust and Shuttle: A New Rapid Prototyping Stack
    3 projects | news.ycombinator.com | 1 Nov 2023
  • Litestar 2.0
    4 projects | /r/Python | 29 Aug 2023
    Full support for validation and serialisation of attrs classes and msgspec Structs. Where previously only Pydantic models and types where supported, you can now mix and match any of these three libraries. In addition to this, adding support for another modelling library has been greatly simplified with the new plugin architecture
  • FastAPI 0.100.0:Release Notes
    12 projects | news.ycombinator.com | 7 Jul 2023
    > Maybe it was very slow before

    That is at least partly the case. I maintain msgspec[1], another Python JSON validation library. Pydantic V1 was ~100x slower at encoding/decoding/validating JSON than msgspec, which was more a testament to Pydantic's performance issues than msgspec's speed. Pydantic V2 is definitely faster than V1, but it's still ~10x slower than msgspec, and up to 2x slower than other pure-python implementations like mashumaro.

    Recent benchmark here: https://gist.github.com/jcrist/d62f450594164d284fbea957fd48b...

    [1]: https://github.com/jcrist/msgspec

  • Pydantic 2.0
    2 projects | news.ycombinator.com | 30 Jun 2023
    While it's definitely much faster than pydantic V1 (which is a huge accomplishment!), it's still not exactly what I'd call "fast".

    I maintain msgspec (https://github.com/jcrist/msgspec), a serialization/validation library which provides similar functionality to pydantic. Recent benchmarks of pydantic V2 against msgspec show msgspec is still 15-30x faster at JSON encoding, and 6-15x faster at JSON decoding/validating.

    Benchmark (and conversation with Samuel) here: https://gist.github.com/jcrist/d62f450594164d284fbea957fd48b...

    This is not to diminish the work of the pydantic team! For many users pydantic will be more than fast enough, and is definitely a more feature-filled tool. It's a good library, and people will be happy using it! But pydantic is not the only tool in this space, and rubbing some rust on it doesn't necessarily make it "fast".

  • Need help developing a high performance Redis ORM for Python
    2 projects | /r/Python | 23 May 2023
    https://github.com/jcrist/msgspec so I am using this instead of Pydantic.
  • Blog post: Writing Python like it’s Rust
    2 projects | /r/Python | 20 May 2023
    Another thing: why pyserde rather than stuff like msgspec? https://github.com/jcrist/msgspec
  • Show HN: Msgspec, a fast serialization/validation library for Python
    1 project | news.ycombinator.com | 11 May 2023
  • [Guide] A Tour Through the Python Framework Galaxy: Discovering the Stars
    14 projects | /r/coder_corner | 29 Apr 2023
    Try msgspec | Maat | turbo for fast serialization and validation
  • Pydantic V2 rewritten in Rust is 5-50x faster than Pydantic V1
    3 projects | news.ycombinator.com | 8 Apr 2023
    Congratulations to the team, Pydantic is an amazing library.

    If you find JSON serialization/deserialization a bottleneck, another interesting library (with much less features) for Python is msgspec: https://github.com/jcrist/msgspec

  • Starlite updates March '22 | 2.0 is coming
    14 projects | /r/Python | 26 Mar 2023
    This feature is yet to be released, but it will allow you to seamlessly use data modelled with for example Pydantic, SQLAlchemy, msgspec or dataclasses in your route handlers, without the need for an intermediary model; The conversion will be handled by the specific DTO "backend" implementation. This new paradigm also makes it trivial to add support for any such modelling library, by simply implementing an appropriate backend.

ustore

Posts with mentions or reviews of ustore. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-06.
  • Up to 100x Faster FastAPI with simdjson and io_uring on Linux 5.19+
    4 projects | /r/programming | 6 Mar 2023
    Just to clarify, I meant in other projects, like the UKV.
  • Show HN: Up to 100x Faster FastAPI with simdjson and io_uring on Linux 5.19
    20 projects | news.ycombinator.com | 6 Mar 2023
    Yes, we also constantly think about that! In the document collections of UKV, for example, we have interoperability between JSON, BSON, and MessagePack objects [1]. CSV is another potential option, but text-based formats aren't ideal for large scale transmissions.

    One thing people do - use two protocols. That is the case with Apache Arrow Flight RPC = gRPC for tasks, Arrow for data. It is a viable path, but compiling gRPC is a nightmare, and we don't want to integrate it into our other libraries, as we generally compile everything from sources. Seemingly, UJRPC can replace gRPC, and for the payload we can continue using Arrow. We will see :)

    [1]: https://github.com/unum-cloud/ukv/blob/main/src/modality_doc...

  • UKV: Replacing MongoDB, Neo4J, and Elastic with a single open-source ACID transactional NoSQL database with Zero-Copy Semantics, replaceable backends, and a vast ecosystem of bindings for C, C++, Python, Java, GoLang
    1 project | /r/opensource | 1 Mar 2023
    ![Map](https://github.com/unum-cloud/ukv/raw/main/assets/charts/Intro.png)
  • Beating OpenAI CLIP with 100x less data and compute
    2 projects | news.ycombinator.com | 28 Feb 2023
    Great point! I would be happy to get more input and brain-storm a good pricing model together, one that is fair both for developers and for users.

    We have an source project UKV, that partly overlaps with vector-search: https://github.com/unum-cloud/ukv

    Another one - UNSW, is a placeholder for now: https://github.com/unum-cloud/unsw

    Both will be soon available on cloud marketplaces, but server-less options are a bit harder to cook. Our Discord is the best place to continue conversation: https://discord.gg/Bbh2bjNhvz

    Thank you for advice!

  • UKV: Modular Transactional NoSQL DBMS Bringing Zero-Copy Semantics to Storage
    1 project | news.ycombinator.com | 31 Jan 2023
  • PageRank Algorithm for Graph Databases
    8 projects | news.ycombinator.com | 30 Jan 2023
  • New to Github.. what are Github apps
    1 project | /r/opensource | 23 Jan 2023
    Most "apps" are for CI/CD pipelines: testing, coverage reports, reviews automation, deployments, and so on. GitHub is a lot more than Git hosting these days. It comes with a web version of VS Code, GitHub Copilot AI, vulnerability detection tools, discussions, roadmap boards, and so on.
  • Python bindings for RocksDB and LevelDB
    2 projects | /r/Python | 13 Jan 2023
    Documentation
  • Bullshit Graph Database Performance Benchmarks
    10 projects | news.ycombinator.com | 12 Jan 2023
    I am really stunned by this story. It made me check the MemGraph benchmarks section. Don't get me wrong, it may be 10-100x faster than Neo4J in even the most basic operations. Moreover, given the quality of Neo4J, it is hard not to be that much quicker. Even Postgres and MySQL are better at storing graphs than Neo4J.

    ---

    Disclosure: I have worked on Graph Algorithms, Graph Databases, and Database Engines for years, and we are now preparing a commercial solution based on UKV [1]. I don't know anyone at MemGraph or Neo4J. Never used the first. As for the second, I am not a fan.

    ---

    Aside from licensing, there are 3 primary complaints. I will address them individually, and I am open to a discussion.

    A. Using Python for Benchmarks instead of Gatling. I don't entirely agree with this. Python still has the fastest-growing programming community while already being one of the 2 most popular languages. Gatling, however, never heard of it. Choosing between the two, I would pick Python. But neither works if you want to design a High-Performance benchmark for a fast system. Without automatic memory management and expensive runtimes, you can only implement those in C, C++, Rust, or another systems-programming language. We have faced that too many times that the benchmark itself works worse than the system it is trying to evaluate [2].

    B. Using hardware from 2010 [3], weird datasets [4]. This shocked me. When I looked at the charts [5] and the benchmarking section, it seemed highly professional and good-looking. I wouldn't expect less from a startup with $20M VC funding. But the devil is in the details. I would have never expected anyone benchmarking a new DBMS to use now 13-year-old CPUs and an unknown dataset. Assuming current developer salaries, hiring people to design a DBMS doesn't make sense if you will be evaluating on a $1000 machine is just financially irresponsible. We buy expensive servers, they cost like sports cars or even apartments in poorer countries. It is hard to maintain, but they are essential to quality work. It is sad to see companies taking such shortcuts. But to be a devil's advocate, there is no 1 graph benchmark or dataset that everyone agrees on. So I imagine people experimenting with multiple real datasets of different sizes or generating them systemically using one of the Random Generator algorithms. In UKV, we have used Twitter data to construct both document and graph collections. In the past, we have also used `ci-patent`, `bio-mouse-gene`, `human-Jung2015-M87102575`, and hundreds of other public datasets from the Network Repository and SNAP [6]. There are datasets of every shape and size, reaching around 1 Billion edges, in case someone is searching for data. For us the next step is the reconstruction of the Web from the 300 TB CommonCrawl dataset [7]. There is no such Graph benchmark in existence, but it is the biggest public dataset we could find.

    C. Running query different number of times for various engines. This can be justified, and it is how current benchmarks are done. You are tracking not just the mean execution time but also variability, so if at some point results converge, you abrupt before hitting the expected iterations number to save time.

    ---

    LDBC [8] seems like a good contestant for a potential industry standard, but it needs to be completed. Its "Business Intelligence workload" and "Interactive workload" categories exclude any real "Graph Analytics". Running an All-Pairs-Shortest-Paths algorithm on a large external memory graph could have been a much more interesting integrated benchmark. Similarly, one can make large-scale community detection or personalized recommendations based on Graphs and evaluate the overall cost/performance. It, however, poses another big challenge. Almost all algorithm implementations for those problems are vertex-centric. They scale poorly with large sparse graphs that demand edge-centric algorithms, so a new implementation has to be written from scratch. We will try to allocate more resources towards that in 2023 and invite anyone curious to join.

    ---

    [1]: https://github.com/unum-cloud/ukv

  • UKV: Open Binary Interface for NoSQL Database Management
    1 project | news.ycombinator.com | 11 Jan 2023

What are some alternatives?

When comparing msgspec and ustore you can also consider the following projects:

pydantic - Data validation using Python type hints

kuzu - Embeddable property graph database management system built for query speed and scalability. Implements Cypher.

orjson - Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy

usearch - Fast Open-Source Search & Clustering engine Γ— for Vectors & πŸ”œ Strings Γ— in C++, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolfram πŸ”

fastapi - FastAPI framework, high performance, easy to learn, fast to code, ready for production

Unquery - Command line query tool for JSON files

mashumaro - Fast and well tested serialization library

typedload - Python library to load dynamically typed data into statically typed data structures

MessagePack - MessagePack serializer implementation for Java / msgpack.org[Java]

hash-db - Experimental distributed pseudomultimodel keyvalue database (it uses python dictionaries) imitating dynamodb querying with join only SQL support, distributed joins and simple Cypher graph support and document storage

marshmallow - A lightweight library for converting complex objects to and from simple Python datatypes.

yyjson - The fastest JSON library in C