Skip to content

Release 0.1.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@mjoerussell mjoerussell released this 02 Jun 22:28
· 99 commits to main since this release
f523d68

This release marks an initial stage of maturity for zdb. There's a long way to go, but using zdb for general DB operations has become very practical.

Features in this Release

Here's a list of the major features included in this release:

  1. Connecting to a database using a connection string or DSN + username and password (tested so far with Postgres and Snowflake)
  2. Catalog functions SQLTables, SQLColumns, and SQLTablePrivileges
  3. Automatically inserting data with structs/cursor.insert
  4. Parameter binding on SQL statements
  5. Preparing and executing statements with cursor.prepare -> cursor.execute
  6. Directly executing statements with cursor.executeDirect
  7. Fast, typesafe row-wise binding
  8. More customizable column-wise binding with user defined fromRow functions

Features not included

Here is an incomplete list of some features that will be coming in future releases:

  1. Improved logging and error handling
  2. Scrollable cursors
  3. Connection pooling
  4. Async/await support
  5. Support for more catalog functions
  6. Transaction management features (manual commit mode, etc.)

The main thing that makes this release non-production ready (besides the missing features listed above) is that there may still be bugs in the zig-odbc binding which probably won't be fixed until they're encountered in zdb development. In addition to general bugs, each driver works slightly different and so there will definitely be tweaks needed as more databases are tested. The features listed above have been tested extensively with Postgres and Snowflake databases and so (even though there may still be issues) I'm confident that they'll work for most users in most use cases.

Call to Action

If anybody has already used zdb, thanks! For new users, here are some things you could do if you want to help out with zdb development

  1. Test with different DBMS's
  2. Test on Linux
  3. Report any bugs
  4. Report feature requests
  5. Pick up PR's, if you want! Even if I've already assigned it to myself feel free to comment if you want to work on any particular issue.

Thanks for your support!