Expand description
AxumODBC
Library to Provide an ODBC-API layer.
License
This project is licensed under either Apache License, Version 2.0, zlib License, or MIT License, at your option.
Help
If you need help with this library or have suggestions please go to our Discord Group
Install
Axum ODBC uses tokio
runtime.
[dependencies]
axum_odbc = "0.4.0"
Cargo Feature Flags
iodbc
: Sets odbc-api to use iodbc connection manager.
Example
use axum_odbc::{ODBCConnectionManager, blocking};
use axum::{
Router,
routing::get,
};
use std::time::Duration;
#[tokio::main]
async fn main() {
let manager = ODBCConnectionManager::new("Driver={ODBC Driver 17 for SQL Server};Server=localhost;UID=SA;PWD=My@Test@Password1;", 5);
// build our application with some routes
let app = Router::with_state(manager)
.route("/drop", get(drop_table));
// run it
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
tracing::debug!("listening on {}", addr);
axum::Server::bind(&addr)
.serve(app.into_make_service())
.await
.unwrap();
}
async fn drop_table(manager: ODBCConnectionManager) -> String {
let mut connection = manager.aquire().await.unwrap();
let sleep = || tokio::time::sleep(Duration::from_millis(50));
let _ = connection.execute_polling("DROP TABLE IF EXISTS TEST", (), sleep).await.unwrap();
"compeleted".to_string()
}
Re-exports
Modules
Asynchronous green-threads.
Macros
Block non async closure or functions so it can run within async.