odbc-api 0.40.2

Write ODBC Applications in (mostly) safe Rust.
Documentation
[package]
name = "odbc-api"
version = "0.40.2"
authors = ["Markus Klein"]
edition = "2021"
license = "MIT"
repository = "https://github.com/pacman82/odbc-api"
documentation = "https://docs.rs/odbc-api/"

# A short blurb about the package. This is not rendered in any format when
# uploaded to crates.io (aka this is not markdown).
description = "Write ODBC Applications in (mostly) safe Rust."

# This is a list of up to five keywords that describe this crate. Keywords
# are searchable on crates.io, and you may choose any words that would
# help someone find this crate.
keywords = ["odbc", "database", "sql"]

# This is a list of up to five categories where this crate would fit.
# Categories are a fixed list available at crates.io/category_slugs, and
# they must match exactly.
categories = ["api-bindings", "database"]

# This points to a file under the package root (relative to this `Cargo.toml`).
# The contents of this file are stored and indexed in the registry.
# crates.io will render this file and place the result on the crate's page.
readme = "../Readme.md"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[features]
# Experimental feature to enabling narrow function calls.
#
# Many functions which accept string arguments in the ODBC C API come in two different flavours. For
# example `SQLConnect` and `SQLConnectW`. The former are called narrow function calls and the latter
# are called wide. They differ in the type they used to encode characters (`u8` vs `u16`). Sadly
# narrow may not always be assumed to be UTF-8 as it is dependend on the system locale which is
# usually not UTF-8 on windows system. The wide function calls could be relied upon to always be
# UTF-16 on any platform, but do not seem to work well with iodbc.
#
# Currently this library uses wide function call exclusively. This feature can be enabled to cause
# compliation against narrow functions, but it is not fully implemented yet.
#
# Note that this is the encoding used for statement text and other string arguments, not for the
# payload of VARCHAR columns, or other column types in the result set.
narrow=[]

# `odbc-api` uses ODBC 3.80 by default, which is well supported both in windows and on linux through
# `UnixODBC`. Yet iodbc, for now does only support ODBC 3.5, so you can set this flag in order to
# include only symbols available in ODBC 3.5 and create an environment which declares the ODBC
# version to be 3.0 which works together with the iodbc driver manager.
odbc_version_3_5 = ["odbc-sys/odbc_version_3_50"]

# The ODBC version your application should declare if it runs on windows, or on linux using
# UnixOdbc.
odbc_version_3_80 = ["odbc-sys/odbc_version_3_80"]

# In order to work with iodbc we need to only use symbols defined in ODBC 3.5. We need to use
# narrow function calls and preferale link against `libiodbc.so` instead of `libodbc.so`.
iodbc = ["odbc_version_3_5", "narrow", "odbc-sys/iodbc"]

default=["odbc_version_3_80"]

[dependencies]
odbc-sys = { version = "0.21.2", default-features = false }
thiserror = "1.0.31"
log = "0.4.17"
widestring = "0.5.1"
force-send-sync = "1.0.0"

[target.'cfg(windows)'.dependencies]
winit = "0.26.1"

[dev-dependencies]
lazy_static = "1.4.0"
env_logger = "0.9.0"
anyhow = "1.0.57"
csv = "1.1.6"
test-case = "2.0.2"
tempfile = "3.3.0"
criterion = { version = "0.3.5", features = ["html_reports"] }


[[bench]]
name = "benches"
harness = false