SaaSHub helps you find the best software and product alternatives Learn more β
Top 23 Cache Open-Source Projects
-
Redis
Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.
Project mention: Redis Inc seeks control over Rust Redis-rs library, talk of trademark concerns | news.ycombinator.com | 2024-11-27https://github.com/redis/redis/pull/13670
Created a PR to add this into the context.
Feel free to comment on it.
Also, calling other bystanders to add other missing pieces to the history.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
TanStack Query
π€ Powerful asynchronous state management, server-state utilities and data fetching for the web. TS/JS, React Query, Solid Query, Svelte Query and Vue Query.
Great to see this--there are some nice features that encourage using standard web technologies like forms, and some solid quality of life improvements.
However, I'm disappointed (but not surprised, this was listed as out of scope for 19) that triggering Suspense is still basically "use a framework that supports it." I have not been able to find any documentation or blog posts about the mechanism. I've tried to figure out how it works by looking at TanStack Query, but I've had limited success so far. I've found they're copying React's twist on Promises [1], but I haven't gotten this to work yet.
I know the general idea is you throw Promises, but Suspense explicitly forbids using promises created during rendering. This means you can't just interrupt the component's initial render to load some data, and then restart it when its data is available. This means the component needs to deal with null data somehow, instead of, e.g., being able to call a custom `useSomeData` hook and rely on it to first suspend and then return the loaded data. Not having to deal directly with loading states in individual components could simplify things quite a bit.
Has anyone explored this side of Suspense?
[1]: https://github.com/TanStack/query/blob/main/packages/query-c...
-
-
Client-Side Data Fetching with useQuery can be used for interactive components that need to fetch data on the client-side, with initial state hydrated from server-side fetched data. For fetching data that changes frequently or for adding client-side interactivity it is useful the useSWR strategy. Itβs a React hook for client-side data fetching with caching and revalidation. It allows fetching data on the client side, usually after the initial page load. Nevertheless, it does not fetch data at build time or on the server for SSR, but it can revalidate and fetch new data when required.
-
-
-
Redisson
Redisson - Valkey and Redis Java client. Complete Real-Time Data Platform. Sync/Async/RxJava/Reactive API. Over 50 Valkey and Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Spring, Tomcat, Scheduler, JCache API, Hibernate, RPC, local cache..
-
valkey
A flexible distributed key-value datastore that is optimized for caching and other realtime workloads.
Project mention: Redis Inc seeks control over Rust Redis-rs library, talk of trademark concerns | news.ycombinator.com | 2024-11-27Yes, nobody says that there's something illegal here. Were it so, Redis is high enough profile project for someone to take a legal action.
But this is a takeover that is slowly draining the value from the community and directing it to private pockets. E.g. Redis is now source-available.
There are still compatible alternatives: https://valkey.io/ or https://keydb.dev/, both BSD-licensed.
I wish RethinkDB was more alive :-\
-
Project mention: π₯ 17 Best Free GitHub Repositories to Crack System Design Interviews π οΈ | dev.to | 2024-12-06
4. System Design Resources by Interview Ready
-
gf
GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang. (by gogf)
-
garnet
Garnet is a remote cache-store from Microsoft Research that offers strong performance (throughput and latency), scalability, storage, recovery, cluster sharding, key migration, and replication features. Garnet can work with existing Redis clients.
We've switched to https://github.com/microsoft/Garnet and been very happy
-
-
go-cache
An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
-
-
boltons
π© Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library. Nothing like Michael Bolton.
Project mention: Boltons is a set of over 250 BSD-licensed, pure-Python utilities | news.ycombinator.com | 2023-12-11 -
Project mention: Otter, Fastest Go in-memory cache based on S3-FIFO algorithm | news.ycombinator.com | 2023-12-23
1. Unfortunately, ristretto has been showing hit ratio around 0 on almost all traces for a very long time now and the authors don't respond to this in any way. Vitess for example has already changed it to another cache. Here are two issues about it: https://github.com/dgraph-io/ristretto/issues/346 and https://github.com/dgraph-io/ristretto/issues/336. That is, ristretto shows such results even on its own benchmarks. You can see it just by running hit ratio benchmarks on a very simple zipf distribution from the ristretto repository: https://github.com/dgraph-io/ristretto/blob/main/stress_test.... On this test I got the following:
-
-
-
Project mention: HAProxy ECH (Encrypted client hello) support #1924 (2022) | news.ycombinator.com | 2024-09-25
-
Apache Ignite β Free and open-source, Apache Ignite is a horizontally scalable key-value cache store system with a robust multi-model database that powers APIs to compute distributed data. Ignite provides a security system that can authenticate users' credentials on the server. It can also be used for system workload acceleration, real-time data processing, analytics, and as a graph-centric programming model.
-
readyset
Readyset is a MySQL and Postgres wire-compatible caching layer that sits in front of existing databases to speed up queries and horizontally scale read throughput. Under the hood, ReadySet caches the results of cached select statements and incrementally updates these results over time as the underlying data changes.
Project mention: Ask HN: How Can I Make My Front End React to Database Changes in Real-Time? | news.ycombinator.com | 2024-04-17- Some platforms like Supabase Realtime [3] and Firebase offer subscription models to database changes, but these solutions fall short when dealing with complex queries involving joins or group-bys.
My vision is that the modern frontend to behave like a series of materialized views that dynamically update as the underlying data changes. Current state management libraries handle state trees well but don't seamlessly integrate with relational or graph-like database structures.
The only thing I can think of is to implement it by myself, which sounds like a big PITA.
Anything goes, Brainstorm with me. Is it causing you headaches as well? Are you familiar with an efficient solution? how are you all tackling it?
[1] https://readyset.io/
-
-
Cache discussion
Cache related posts
-
Redis Inc seeks control over Rust Redis-rs library, talk of trademark concerns
-
The Fastest Redis
-
Show HN: Whirlwind β Async concurrent hashmap for Rust
-
Using Cache Control in Nuxt to improve Performance
-
API Caching: Techniques for Better Performance
-
Show HN: Pocache, preemptive optimistic caching for Go
-
How I Built JMServices: Challenges, Strengths, and Lessons from My SaaS Journey
-
A note from our sponsor - SaaSHub
www.saashub.com | 8 Dec 2024
Index
What are some of the best open-source Cache projects? This list will help you:
Project | Stars | |
---|---|---|
1 | Redis | 67,252 |
2 | TanStack Query | 42,837 |
3 | AndroidUtilCode | 33,361 |
4 | SWR | 30,667 |
5 | SDWebImage | 25,072 |
6 | Kingfisher | 23,430 |
7 | Redisson | 23,398 |
8 | valkey | 17,823 |
9 | system-design-resources | 16,009 |
10 | gf | 11,790 |
11 | garnet | 10,453 |
12 | Nuke | 8,184 |
13 | go-cache | 8,164 |
14 | BigCache | 7,586 |
15 | boltons | 6,535 |
16 | ristretto | 5,693 |
17 | AndroidVideoCache | 5,419 |
18 | node-lru-cache | 5,381 |
19 | haproxy | 5,055 |
20 | Apache Ignite | 4,827 |
21 | readyset | 4,573 |
22 | dynomite | 4,198 |
23 | next-pwa | 3,896 |