The Genji database for Go

I’ve been watching the development of the Genji database for Go. The author does a good job of responding to contributors, yet has high standards for code. Seems like a nice blend of high standards, humility, and generosity.

See example:


I also asked on slack if the plan is to keep the project pure Go – looks like it is:


1 Like

Did a test to check binary size when using the genji packages (important for embedded systems where you are deploying go apps OTA). A test app comes in at 5MB, which is good for a Go app. (xz compresses to 1.9MB). List of things in the app:

[cbrake@ceres go]$ goweight cmd/genji-test/main.go                              
  5.9 MB runtime         
  2.0 MB reflect       
  1.3 MB
  1.2 MB syscall                                                               
  1.1 MB         
  1.0 MB
  982 kB database/sql                                                          
  925 kB
  690 kB time            
  638 kB
  617 kB fmt                  
  593 kB os                   
  582 kB
  571 kB internal/reflectlite
  458 kB
  394 kB strconv
  375 kB strings
  353 kB internal/poll
  345 kB math
  327 kB unicode
  289 kB bytes
  280 kB
  270 kB bufio
  265 kB encoding/binary
  263 kB
  236 kB sync
  233 kB database/sql/driver
  214 kB
  211 kB
  196 kB io
  188 kB
  171 kB sort
  152 kB context
  152 kB
  139 kB

1 Like

When trying to update Genji to latest version in SIOT, I found a bug which just got fixed. Being able to communication problems clearly is an important skill when working with complex systems. I tell people – I don’t really know a lot, but I do know who to ask, and how to ask. I continue to be impressed with the Genji project and its pace and quality of development.

updated web site looks nice!

Genji v0.14.0 release:

Genji v0.15.0 release:

The release notes are a very interesting read. They have switched from bolt/badger to pebble for the backing store, which they claim is very fast for writes. They also claim the database format is close to stable (v1).

I was planning to switch to SQLite for SIOT – probably still will, but nice to see other alternatives coming on …