# Agdb vs native\_db

**URL:** <https://users.rust-lang.org/t/agdb-vs-native-db/142632>\
**Category:** uncategorized\
**Created:** [September 27, 2026, 10:53am UTC](https://users.rust-lang.org/t/agdb-vs-native-db/142632 "2026-09-27T10:53:07Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Joe232](https://avatars.discourse-cdn.com/v4/letter/j/df705f/32.png) [@Joe232](https://users.rust-lang.org/u/Joe232)\
**Post date:** [September 27, 2026, 10:53am UTC](https://users.rust-lang.org/t/agdb-vs-native-db/142632/1 "2026-09-27T10:53:07Z")

</div>

I am looking at two different databases to use:

> **[GitHub - agnesoft/agdb: Agnesoft Graph Database](https://github.com/agnesoft/agdb)**
>
> Agnesoft Graph Database

and

> **[GitHub - vincent-herlemont/native\_db: Drop-in embedded database in Rust](https://github.com/vincent-herlemont/native_db)**
>
> Drop-in embedded database in Rust

But I don't know which one would offer:

1. Better performance
2. Less storage space taken by data?
3. Ease of use

I know that agdb plots data on graph whereas native\_db is a wrapper on top of key-value pair.

---

<div class="post-metadata">

**Author:** ![jofas](https://sea1.discourse-cdn.com/flex019/user_avatar/users.rust-lang.org/jofas/32/30690_2.png) [@jofas](https://users.rust-lang.org/u/jofas)\
**Post date:** [September 27, 2026, 12:10pm UTC](https://users.rust-lang.org/t/agdb-vs-native-db/142632/2 "2026-09-27T12:10:02Z")

</div>

> [@Joe232](#):
>
> I know that agdb plots data on graph whereas native\_db is a wrapper on top of key-value pair.

These are two rather distinct ways of storing data. Especially graph databases are quite domain specific to, well, data structured as a graph, something classical relational databases struggle with. Key-value databases are a bit more general purpose. Without understanding your domain model and the expected real-world workload of your application, we can't give you any relevant suggestions to what db will perform better for _you_. I'm afraid you have to benchmark and try their APIs yourself and see what fits.

---

<div class="post-metadata">

**Author:** ![Joe232](https://avatars.discourse-cdn.com/v4/letter/j/df705f/32.png) [@Joe232](https://users.rust-lang.org/u/Joe232)\
**Post date:** [September 27, 2026, 12:26pm UTC](https://users.rust-lang.org/t/agdb-vs-native-db/142632/3 "2026-09-27T12:26:25Z")

</div>

> [@jofas](#):
>
> Key-value databases are a bit more general purpose

But native\_db is a wrapper ontop of key\_value pair and it seems to very well work with structures just like with agdb.

> [@jofas](#):
>
> Without understanding your domain model and the expected real-world workload of your application

Just general usecase so for example storing customer's details, retrieving data etc, so the whole of CRUD really.

Possibly I would imagine I would have a client/web application that would connect to a webserver and the webserver could use either native\_db or agdb. So what do you think would work best?

---

<div class="post-metadata">

**Author:** ![jofas](https://sea1.discourse-cdn.com/flex019/user_avatar/users.rust-lang.org/jofas/32/30690_2.png) [@jofas](https://users.rust-lang.org/u/jofas)\
**Post date:** [September 27, 2026, 12:58pm UTC](https://users.rust-lang.org/t/agdb-vs-native-db/142632/4 "2026-09-27T12:58:01Z")

</div>

I'd suspect native\_db to have the more ergonomic interface if your data does not behave like a graph. Depending on your domain, customer data could be stored as a graph though. I once developed an application where users were organised hierarchically in a tree structure. Querying a subtree of the user tree from the document database I used to store the user data was brutally inefficient. I later regretted not using a graph database for the user tree directly and that I had to instead rely heavily on caching.

---

<div class="post-metadata">

**Author:** ![Joe232](https://avatars.discourse-cdn.com/v4/letter/j/df705f/32.png) [@Joe232](https://users.rust-lang.org/u/Joe232)\
**Post date:** [September 29, 2026, 12:51pm UTC](https://users.rust-lang.org/t/agdb-vs-native-db/142632/5 "2026-09-29T12:51:07Z")

</div>

Maybe, but how does graph database work though I have never used one?

---

<div class="post-metadata">

**Author:** ![jofas](https://sea1.discourse-cdn.com/flex019/user_avatar/users.rust-lang.org/jofas/32/30690_2.png) [@jofas](https://users.rust-lang.org/u/jofas)\
**Post date:** [September 29, 2026, 1:30pm UTC](https://users.rust-lang.org/t/agdb-vs-native-db/142632/6 "2026-09-29T13:30:06Z")

</div>

I'm not familiar with how data is actually stored in graph databases. I assume that it varies from implementation to implementation. What I do know is that they offer a query language that makes it easier to work with graph structures, including recursive queries where you "hop" from vertex to vertex along the graph's edges.
