golang-ical
ristretto
Our great sponsors
golang-ical | ristretto | |
---|---|---|
1 | 11 | |
127 | 4,043 | |
- | 2.0% | |
6.6 | 3.7 | |
3 months ago | 16 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
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.
golang-ical
-
Best iCal (ics) library for serialization?
I went ahead with https://github.com/arran4/golang-ical after a lot of googling, but I had to hand-roll alerts VALARM with no help of static types.
ristretto
-
Quitting Dgraph Labs
While I never used dgraph, I do use badger and ristretto and am similarly in a bind over their long-term survival (moreso badger than ristretto)...
-
Recommendation for Key/Value storage
There are also different packages used as a wrapper on top of the Go map based on what your requirements are (storing a lot of data) https://github.com/allegro/bigcache or (need performance) https://github.com/dgraph-io/ristretto. For basic use-cases, the standard Go map should be enough. Just keep in mind whether you need concurrent access to your data structure, in which case you should guard your map with a mutex .
-
Writing a concurrent LRU cache
Ya, I saw concache but I looked into it and it doesn't implement what is needed. Each bucket has its own linked-list backing (hence "lock-free linked list buckets"). An LRU needs each value in each bucket to be part of one linked list I believe. After posting this I realized my line of research was failing because it was state of the art five years ago. Caffeine replaced `concurrentlinkedhashmap` in the java world (by the same author). A rust version of that is Moka. These are much more complicated than a concurrent LRU but faster (aka more state of the art). Another rust crate is Stretto which is a port of dgraph's Ristretto (in go). The question becomes is it worth it to essentially port `concurrentlinkedhashmap` to have a great concurrent LRU when there are more state of the art caches out there.
-
Stretto - a thread-safe, high-performance, high hit-ratio cache.
Stretto is a pure Rust implementation for https://github.com/dgraph-io/ristretto. A high performance thread-safe memory-bound Rust cache.
- IceFireDB:Distributed disk storage database based on Raft and Redis protocol.
- https://np.reddit.com/r/programming/comments/p7a56u/icefiredbdistributed_disk_storage_database_based/h9i9j44/
- https://np.reddit.com/r/coding/comments/p79ywb/icefiredbdistributed_disk_storage_database_based/h9i8p6q/
What are some alternatives?
go-cache-benchmark - Cache benchmark for Golang
chroma - A general purpose syntax highlighter in pure Go
BigCache - Efficient cache for gigabytes of data written in Go.
stretto - Stretto is a Rust implementation for Dgraph's ristretto (https://github.com/dgraph-io/ristretto). A high performance memory-bound Rust cache.
moka - A high performance concurrent caching library for Rust
Ferret - Declarative web scraping
IceFireDB - IceFireDB is a database built for web3 and web2. It strives to fill the gap between web2 and web3 with a friendly database experience, making web3 application data storage more convenient, and making it easier for web2 applications to achieve decentralization and data immutability.
ergo - an actor based Framework for creating microservices using technologies and design patterns of Erlang/OTP in Golang
badger - Fast key-value DB in Go.
parquet-go - Go library to read/write Parquet files
uhaha - High Availability Raft Framework for Go