AxumODBC

Library to Provide an ODBC-API layer.

crates.io docs.rs Minimum Rust Version
## License This project is licensed under either [Apache License, Version 2.0](LICENSE-APACHE), [zlib License](LICENSE-ZLIB), or [MIT License](LICENSE-MIT), at your option. ## Help If you need help with this library or have suggestions please go to our [Discord Group](https://discord.gg/gVXNDwpS3Z) ## Install Axum ODBC uses [`tokio`] runtime. [`tokio`]: https://github.com/tokio-rs/tokio ```toml # Cargo.toml [dependencies] axum_odbc = "0.7.0" ``` #### Cargo Feature Flags `iodbc`: Sets odbc-api to use iodbc connection manager. # Example ```rust no_run 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() } ```