Show HN: Go-duckfs – making DuckDB quack like a Gopher
github.comI made this because I kept running into issues and limitations when trying to embed DuckDB in Go applications: because DuckDB and its extensions do their own I/O in C++ land, integrating with the rest of my applications to get authentication or instrumentation working was really challenging. With go-duckfs, all this happens on the Go side, it's like a sandbox for all I/O that happen during queries.
It's kind of like https://duckdb.org/docs/stable/guides/python/filesystems but for Go. I think it'll be useful to anyone who is using DuckDB in a Go application, let me know! Similar in vein with how my SQLite driver fully replaces the filesystem access layer (VFS) with Go code, and makes it available as Go APIs you can implement (including, in read-only mode, with any io.ReaderAt). https://github.com/ncruces/go-sqlite3/blob/main/vfs/readervf... Go interfaces keep being such a powerful tool for software composition.