HNHacker News
TopNewBestAskShowJobs

joel-ling

29 karma · joined January 31, 2025

submissionscomments
joel-ling··on Show HN: voidDB – A transactional key-value DB written in Go for 64-bit Linux
Look ma, no more dependencies! https://github.com/voidDB/voidDB/blob/v0.1.4/go.sum
joel-ling··on Show HN: voidDB – A transactional key-value DB written in Go for 64-bit Linux
Great ideas. I have broken out the tests into their own modules within the same repository. Thanks!
joel-ling··on Show HN: voidDB – A transactional key-value DB written in Go for 64-bit Linux
Beautiful reminder of the often forgotten aspect of technical work.

Huginn: thought, perception, comprehension, ...

Muninn: care, urge, wonder, curiosity, interest, ...

https://en.wikipedia.org/wiki/Huginn_and_Muninn#Etymology

joel-ling··on Show HN: voidDB – A transactional key-value DB written in Go for 64-bit Linux
Five years ago, I was new to KV DBs and Golang. You can!
joel-ling··on Show HN: voidDB – A transactional key-value DB written in Go for 64-bit Linux
Thank you for highlighting. These contain references to some philosophies I relate to and find comforting, including those most prominently articulated by Ernest Becker and Alan Watts.
joel-ling··on Show HN: voidDB – A transactional key-value DB written in Go for 64-bit Linux
Thank you for showing substantive evidence in defence of voidDB; it is very vindicating.
joel-ling··on Show HN: voidDB – A transactional key-value DB written in Go for 64-bit Linux
That is correct. Remove directories "test/" and "cursor/test/", then run "go mod tidy"; you should see only one dependency in go.mod:

  require golang.org/x/sys v0.29.0
Could have used "syscall" in the standard library instead of "golang.org/x/sys/unix" if not for these: https://pkg.go.dev/golang.org/x/sys/unix#F_OFD_GETLK

... and this: https://go.googlesource.com/proposal/+/refs/heads/master/des...

joel-ling··on Show HN: voidDB – A transactional key-value DB written in Go for 64-bit Linux
Seemingly faster and more compact than lmdb-go, bbolt, Badger, and goleveldb at <2K LOC.

  goos: linux
  goarch: arm64
  pkg: github.com/voidDB/voidDB/test
  BenchmarkVoidPut-2            131072      14933 ns/op
  BenchmarkVoidGet-2            131072       1060 ns/op
  BenchmarkVoidGetNext-2        131072        245.8 ns/op
  BenchmarkLMDBPut-2            131072      22414 ns/op
  BenchmarkLMDBGet-2            131072       1826 ns/op
  BenchmarkLMDBGetNext-2        131072        602.2 ns/op
  BenchmarkBoltPut-2            131072      66984 ns/op
  BenchmarkBoltGet-2            131072       2552 ns/op
  BenchmarkBoltGetNext-2        131072        254.6 ns/op
  BenchmarkLevelPut-2           131072      44182 ns/op
  BenchmarkLevelGet-2           131072      30949 ns/op
  BenchmarkLevelGetNext-2       131072       3441 ns/op
  BenchmarkBadgerPut-2          131072      15182 ns/op
  BenchmarkBadgerGet-2          131072      33114 ns/op
  BenchmarkBadgerGetNext-2      131072      12895 ns/op
  BenchmarkNothing-2            131072          0.3239 ns/op
Check out the docs at https://pkg.go.dev/github.com/voidDB/voidDB