go-memdb
lungo
Our great sponsors
go-memdb | lungo | |
---|---|---|
3 | 2 | |
3,070 | 448 | |
1.7% | - | |
3.6 | 5.2 | |
2 months ago | 29 days ago | |
Go | Go | |
Mozilla Public 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.
go-memdb
-
I created an in-memory SQL database called MemSQL as a learning project
For another in-memory database example, you could also check out https://github.com/hashicorp/go-memdb, but it's based on a radix tree implementation.
-
Why use a real K/V database over a MapStore?
I just think its a glorified map. Yeah, for example go-memdb list some of its advantages in their https://github.com/hashicorp/go-memdb/blob/master/README.md README. But it is not clear whether you gain any performance gain over a map except for avoiding the locking as explained.
-
An Unlikely Database Migration
>So we invested what probably amounts to two or three weeks of engineering time into designing in-memory indexes that are transactionally consistent
I'll be interested to see that part if it does get open sourced. I've used https://github.com/hashicorp/go-memdb which sounds similar.
lungo
- Show HN: Mongita is to MongoDB as SQLite is to SQL
-
An Unlikely Database Migration
I found myself in a similar situation sometime ago with MongoDB. In one project my unit tests started slowing me down too much to be productive. In another, I had so little data that running a server alongside it was a waste of resources. I invested a couple of weeks in developing a SQLite type of library[1] for Go that implemented the official Go drivers API with a small wrapper to select between the two. Up until now, it paid huge dividends in both projects ongoing simplicity and was totally worth the investment.
[1]: https://github.com/256dpi/lungo
What are some alternatives?
dbbench - 🏋️ dbbench is a simple database benchmarking tool which supports several databases and own scripts
mongita - "Mongita is to MongoDB as SQLite is to SQL"
badger - Fast key-value DB in Go.
indradb - A graph database written in rust
buntdb - BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support
mongodb-memory-server - Spinning up mongod in memory for fast tests. If you run tests in parallel this lib helps to spin up dedicated mongodb servers for every test file in MacOS, *nix, Windows or CI environments (in most cases with zero-config).
bolt
sortedcontainers - Python Sorted Container Types: Sorted List, Sorted Dict, and Sorted Set
go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
lua-mongo - MongoDB Driver for Lua
cockroach - CockroachDB - the open source, cloud-native distributed SQL database.
SQLBoiler - Generate a Go ORM tailored to your database schema.