badger
embedded-postgres
Our great sponsors
badger | embedded-postgres | |
---|---|---|
30 | 4 | |
13,314 | 732 | |
0.9% | - | |
7.0 | 5.2 | |
9 days ago | 25 days ago | |
Go | Go | |
Apache License 2.0 | MIT 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.
badger
-
GORM
I' see that I'm also set to check out BadgerDB next. https://github.com/dgraph-io/badger
-
Polygon: Json Database System designed to run on small servers (as low as 16MB) and still be fast and flexible.
Some example of embeddable database could be genji, badger and boltdb
-
Butter from two CoWs: making a key-value store with btrfs
As I mentioned in a comment above you could probably just use AgageDb (Rust implementation of Badger which is a single file high performance KVP store. Turn off all of its built-in transactional behaviour and see how fast it runs on BTRFS using reflinks instead.
-
Building a Log-Structured Merge Tree in Go
Badger: Fast key-value DB in Go (GitHub)
-
Is there a nice embedded json db, like PoloDB (Rust) for Golang
I use Badger a lot, it doesn’t do much but it’s fast
- Best packages?
- What's the big deal about key-value databases like FoundationDB ands RocksDB?
-
badger VS ZoneTree - a user suggested alternative
2 projects | 22 Aug 2022
- Alternatives to JSON and gjson as a document datastore?
-
Show HN: Kvass, a personal key-value store
Curious why you chose sqlite instead of something like [badger](https://github.com/dgraph-io/badger) given you expose it as a key value database, which badger is.
embedded-postgres
-
If you could go back in time | What would you do different regarding go
So what can you do insted? For testing databases, setup a docker instance for tests (e.g. like in https://github.com/ardanlabs/service), or start an embedded-postgres daemon (see https://github.com/fergusstrange/embedded-postgres). For communication with external APIs, just pass the http.Client (either in context.Context or as a field on the struct). Then in tests, you can override the http.Client.Transport func.
-
Embedded database options
There's also this interesting project, which embeds postgres into your binary: https://github.com/fergusstrange/embedded-postgres
This is down to nuance, but all databases are "file based" as they all write to files. But most of them require a separate process with lock coordination to get away from writer lock delays and ensure ACID, which includes Postgresql. Calling any version of pgl "embedded" is confusing because I see that being used to describe pgl databases which are run in a localhost mode with a single reader/writer client. Regardless, those still require a postgres process and access it over IP. For simplicity, if one uses a database by touching its files directly from the process accessing the database, then it's "embedded"; but then again I guess that semantic ship has sailed: https://github.com/fergusstrange/embedded-postgres so the point may be moot.
-
Ask HN: Tips on hosting your own Postgres instance
depending on the language you have chosen for your side project you might also be able to run postgresql in embedded mode here is the one for golang https://github.com/fergusstrange/embedded-postgres . There is similar solution for java as well.
What are some alternatives?
goleveldb - LevelDB key/value database in Go.
buntdb - BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support
bolt
bbolt - An embedded key/value database for Go.
nutsdb - A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.
go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
BigCache - Efficient cache for gigabytes of data written in Go.
go-memdb - Golang in-memory database built on immutable radix trees
Bitcask - 🔑 A high performance Key/Value store written in Go with a predictable read/write performance and high throughput. Uses a Bitcask on-disk layout (LSM+WAL) similar to Riak.
jaeger - CNCF Jaeger, a Distributed Tracing Platform
dbr - Additions to Go's database/sql for super fast performance and convenience.
moss - moss - a simple, fast, ordered, persistable, key-val storage library for golang