Congrats on launching! Was following along with the development, glad to see it launched
tidwall · 3h ago
Thanks Steve. Your feedback was very helpful.
jasonthorsness · 5h ago
The README doesn’t seem to explain _why_ it is faster. Is it just highly hand-optimized? Is there some main technique used?
tidwall · 5h ago
Yes, it is highly hand optimized. There's a description of some of the methods I used near the bottom of there README. I mainly focused on minimizing contention, with the sharded hashmap and such. But the networking layer is carefully crafted.
simonw · 5h ago
I thought I recognized the tidwall name - Josh is also responsible for tg which is a really neat, very tight C geospatial library: https://github.com/tidwall/tg
tidwall · 1h ago
Thanks you for the blog post about TG when it came out.
simonw · 5h ago
Supporting HTTP, Redis and PostgreSQL protocols at the same time is a neat trick!
psql -h localhost -p 9401
=> SET mykey 'my value';
=> GET mykey;
=> DEL mykey;
tidwall · 1h ago
The protocols are autodetected. No need to carry multiple ports around.
Imustaskforhelp · 5h ago
Really looks fascinating.. Might need a deeper dive.
Also.. like, it says that you plan on supporting sql? is this true? What does that actually mean really since I guess it might then compete with things like sqlite/duckdb?
Genuinely curious, great project! Starred!
tidwall · 5h ago
Not intending to make pogocache into a sql database. I prefer keeping it a cache. More so exploring ways to work with existing databases such as sqlite, duckdb, postgres. Kinda like providing proxy-ish operations that transparently cache sql reads.
- a Redis like cache purpose built for real-time spatial locations: https://tile38.com/
- go package for reading JSON: https://github.com/tidwall/gjson
Also.. like, it says that you plan on supporting sql? is this true? What does that actually mean really since I guess it might then compete with things like sqlite/duckdb?
Genuinely curious, great project! Starred!
Is there a way to provide the auth password via an envar instead of a command line arg?