All Versions
Latest Version
Avg Release Cycle
81 days
Latest Release
914 days ago

Changelog History
Page 1

  • v0.24.2 Changes

    December 05, 2020

    ๐ŸŽ v0.24.2 is identical to v0.24.1 except it allows building with an older version of smallvec, as the newer one caused meaningful performance issues in Firefox.

    ๐Ÿ‘€ See #855 for more info.

  • v0.24.1 Changes

    October 07, 2020

    The lru-cache crate has been replaced with hashlink, which may fix panics on Rust nightly caused by unsoundness in some versions of the lru-cache crate (#811).

    ๐Ÿ’… A positional BLOB I/O API has been added, which more closely mirrors SQLites actual BLOB I/O api, and is similar to unix-style pwrite/pread. (#780).

    ๐Ÿ A winsqlite3 feature as been added to both rusqlite and libsqlite3-sys which allows linking against the SQLite present in newer versions of Windows 10 (#796).

    Rusqlite's iterator types are now #[must_use] (#799).

    โšก๏ธ Several dependencies have been updated.

  • v0.24.0 Changes

    August 22, 2020
    • ๐Ÿ’ฅ BREAKING CHANGE: Upgrade to time v0.2 and put it behind a feature flag (#653)
    • impl TryFrom<&Row<'_>> for (...)
      This change implements TryFrom<&Row> for tuples up to 16 fields. This
      is a convenience function that can be used to map rows more easily.
    • adding ability to work with sqlite compiled with SQLITE_OMIT_DECLTYPE (feature column_decltype)
      Enables compiling bundled sources with different flags.
    • โž• Add cross-compilation with mingw (#774)
    • ๐Ÿ‘Œ Support wasm32-wasi target (#785)
    • ๐Ÿ‘ Implement our own sqlite3_execwhich supports unlock notify (#767)
    • ๐Ÿ›  Fix order of parameters in InvalidParameterCount message (#779)
    • Don't implement Into for Statement (#763)
    • Publically expose Map
    • little speedup for bundled sqlite3.c on unix (HAVE_LOCALTIME_R)
    • ๐Ÿ’ฅ BREAKING CHANGE: VTabCursor lifetime should be bound to VTab lifetime (#753)
    • ๐Ÿ— preupdate_hook feature requires buildtime_bindgen
    • โฌ†๏ธ Upgrade SQLite bundled sources to 3.33.0
    • โฌ†๏ธ Upgrade to bindgen 0.54
    • ๐Ÿ›  Fix missing docs
    • โž• Add link to gitter channel (#738)
    • Include LICENSE into the libsqlite3-sys crate (#736)
  • v0.23.1 Changes

    April 23, 2020

    ๐Ÿš‘ Hotfix release for arm32 bustage (#724)

  • v0.23.0 Changes

    April 23, 2020

    ๐Ÿš€ The release primarily contains a number of security/memory safety fixes, which were mostly found due to an audit of the unsafe code in the crate. An advisory will be published for these shortly.

    0๏ธโƒฃ They mostly impact APIs exposed through features, so while there are a lot of them, if you're using rusqlite under default features, you're fine. None of them impact libsqlite3-sys.

    ๐Ÿš€ It's a major release as these APIs were fundamentally unsound and could not be fixed without breaking changes.

    • ๐Ÿ‘‰ Make VTab / VTabCursor unsafe trait as implementing them on the wrong type is unsound c9ef5bd. (Note that a safe VTab API is planned in the future).
    • ๐Ÿ‘‰ Make create_module take a &'static Module as that's what the reference was treated as. 3c6b57f
    • ๐Ÿ‘‰ Make UnlockNotification hold the Mutex while notifying the CondVar. Also, ensure &mut is not used to reference a value shared across another thread. 45fd77e
    • ๐Ÿ›  Fix potential format string vuln in rusqlite::trace::log 2327d3b
    • Auxdata API has been changed and has new bounds.
      • Fix potential use-after-free and data race in auxdata api 2ef3628
      • Fix repr(Rust) type being used as if it were repr(C) 71b2f51
    • ๐Ÿ›  Fix use-after-free in in ac30e16

    ๐Ÿš€ Non-safety changes in this release:

    • โšก๏ธ Bundled SQLite has been updated to 3.31.1 22564d3
    • Non-unicode paths are now handled properly, at least on unix #692
    • ๐Ÿ— Functions using va_list are excluded from the bundled bindings, as these are platform specific. You can still use them if you enable the buildtime_bindgen feature. 288aa96
    • โฌ‡๏ธ An unchecked_transaction function has been added which allows opting-out of compile time transaction checking. Despite it's name, it's still checked, it just downgrades a compilation error to a runtime one: #693
    • std::error::Error::source is implemented in favor of std::error::Error::cause for all error types.
  • v0.22.0 Changes

    April 08, 2020
    • โž• Add ability to open sqlite connection with specified vfs (#630)
    • ๐Ÿ›  Fix i32 overflow in Connection::busy_timeout (#604)
    • Separate the modern_sqlite and bundled features. (#613)
    • โž• Add FromSql for Box<str>, Rc<str> and Arc<str>
    • ๐Ÿ›  Fix params macro (#614)
    • ๐Ÿ›  Fix error while executing ALTER statement (#645)
    • Ignore PATH change (#435)
    • โž• Add playground metadata for rusqlite, hopefully fixing it (#647)
    • Don't perform threading mode checks on wasm32 (#640)
    • โฌ†๏ธ Upgraded the bundled SQLite version to 3.31.0. (#619)
    • โž• Add support to function flags (#622)
    • โž• Add missing IndexConstraintOp entries (#623)
    • โž• Add missing error codes (#624)
    • โž• Add missing constants (#629)
    • Introduce alloc to generate C string allocated by sqlite3 (#644)
    • ๐Ÿ rusqlite now exposes the bundled-windows feature, forwarding to libsqlite3-sys. (#682)
    • rusqlite::Result<T> is now defined as type Result<T, E = rusqlite::Error>. This avoids needing to access std::result::Result explicitly when rusqlite::Result is brought into scope. (#678)
    • Rows now support mapped and and_then functions which return Iterators. This is useful if you cannot use query_map or query_and_then for some reason. (#676)
    • A new error variant was added for using the wrong number of bound parameters. Previously this caused a panic (#675).
    • ๐Ÿ‘ Many rusqlite enums have been made #[non_exhaustive] for better extensibility. (#673)
    • Various low-level Statement apis have been added to allow separating parameter binding and statement execution. (#668)
    • ToSql is implemented for various smart pointers (Box, Cow, Rc, Arc) in more cases. (#660)
    • bundled-full feature now exists to enable both bundled and other features which do not conflict. It is mainly intended to improve developer ergonomics for working on rusqlite (#687)
    • ๐Ÿšš The features vtab_v3 and unstable are removed. The former is no longer necessary and the latter was only used for #[bench]. (#687)
    • 0๏ธโƒฃ rusqlite::Error now implements std::error::Error::source instead of only std::error::Error::cause. Use of cause will still work, as it goes through source by default. (#683)
  • v0.21.0 Changes

    December 13, 2019
    • ๐Ÿ›  Fix memory leak when using Statement.expanded_sql (#552)
    • ๐Ÿ›  Fix segfault on prepare_cached with an empty query (#583)
    • ๐Ÿ– Handle old versions of visual studio (#554)
    • Conversion from FromSqlError to Error (#556)
    • ๐Ÿ“œ Parse Option<T> into Value/ValueRef where applicable (#571)
    • ๐Ÿ‘‰ Make column_name() public and forward all column methods in Row and Rows (#568)
    • Check SQL query passed to execute (#565)
    • Check that only one statement is provided when extra_check feature is activated (#397)
    • ๐Ÿ‘Œ Improve error message when we can't open a database (#578)
    • โฌ†๏ธ Upgrade bundled SQLite version to 3.30.1 (#579)
    • ๐Ÿ—„ Replace deprecated tempdir with tempfile (#594)
    • Download sqlite source via HTTPS (#599)
    • ๐Ÿ›  Fix session extension (#588)
    • โฌ†๏ธ Upgrade to uuid 0.8 (#576)
    • ๐Ÿ— Disable vcpkg in appveyor build (#580)
  • v0.20.0 Changes

    July 27, 2019
    • BREAKING CHANGE: Do not assume sqlite3_column_text is valid UTF-8. (#548)
    • ๐Ÿ‘‰ Make Module impl Send (#543)
    • โฌ†๏ธ Upgrade bundled SQLite version to 3.29
    • โฌ†๏ธ Upgrade bindgen to 0.51
  • v0.19.0 Changes

    June 26, 2019
    • Increase bundled SQLite variables and depth (#522)
    • ๐Ÿ›  Fix error when building with uuid and functions features. (#515)
    • โฌ†๏ธ Upgrade bundled SQLite sources to 3.28.0 (#513)
    • ๐Ÿ›  Fix nightly build (#514)
    • Add query_row_named for prepared statement (#528)
    • Add binding to sqlite3_create_collation_v2 (#534)
    • โž• Add bundled-windows feature (#537)
    • Add binding to sqlite3_create_window_function (#539)
    • Include the name of the column in InvalidColumnType errors (#541)
  • v0.18.0 Changes

    April 24, 2019
    • โž• Add support for Uuid (#506)
    • impl ToSql for Box<dyn ToSql> (#500)
    • ๐Ÿ‘ Allow specifying both sqlcipher and bundled (#511)
    • Introduce Statement::columns (#494)
    • Rebuild when VCPKGRS_DYNAMIC changes (#483)
    • โฌ†๏ธ Upgrade to fallible-iterator 0.2