dbriemann
2020-6-13 07:43:31

Are there any simple embeddable key/value store/db libraries for racket? Something similar to https://github.com/etcd-io/bbolt (or much simpler).


alexharsanyi
2020-6-13 08:47:27

How simple should this database be? I have used get-preference and put-references as a key value store and they work nicely for small use cases (up to a few hundred keys)


alexharsanyi
2020-6-13 08:52:19

And if you need larger datasets or transactions, sqlite works just fine as a key/value store and you can access that directly from the db package which ships with Racket


soegaard2
2020-6-13 09:58:04

I like sqlite too. There is also bindings for redis.


auaruss
2020-6-13 09:58:14

The first link on https://docs.racket-lang.org/htdp-langs/beginner.html is currently broken. A working link to that passage is here https://htdp.org/2018-01-06/Book/i1-2.html


soegaard2
2020-6-13 09:59:45

@mflatt ^


spdegabrielle
2020-6-13 12:38:48

I’ve created a PR to fix https://github.com/racket/htdp/pull/102


spdegabrielle
2020-6-13 13:14:22

@auaruss probably will be fixed tomorrow BTW the latest book is at https://htdp.org/2020-5-6/Book/i1-2.html (for now)


dbriemann
2020-6-13 13:56:04

sqlite would have been my choice if there is nothing like bolt yes. sqlite is still really great. i don’t really want redis because i want something that is embedded into my application.


dbriemann
2020-6-13 13:56:17

so it will be sqlite. that is also fine


jestarray
2020-6-13 16:03:40

is chez scheme shipping in 7.8 as default?


mflatt
2020-6-13 16:50:21

No, but maybe 7.9.

Although CS 7.8 should finally have all functionality in place (including things like unboxing of local floating-point calculations and a kind of incremental mode for GC), I think we want one release cycle where we don’t find bigger bugs in CS than BC. That might happen in the cycle between 7.8 and 7.9.


samdphillips
2020-6-13 21:08:57

Am I missing something or are there not synchronizable event constructors for place-channels?


mflatt
2020-6-13 21:40:33

Place channels are evts for receiving. Since the channel is asynchronous (i.e., sending never blocks), there’s no corresponding evt for sending.


samdphillips
2020-6-13 21:42:03

Thanks! Good to know


samdphillips
2020-6-13 21:43:02

I think I asked this same exact question about 6 months ago :flushed: