# IC DBMS API

[](https://opensource.org/licenses/MIT)
[](https://github.com/veeso/ic-dbms/stargazers)
[](https://crates.io/crates/ic-dbms-api)
[](https://crates.io/crates/ic-dbms-api)
[](https://ko-fi.com/veeso)
[](https://conventionalcommits.org)
[](https://github.com/veeso/ic-dbms/actions)
[](https://coveralls.io/github/veeso/ic-dbms)
[](https://docs.rs/ic-dbms-api)
This crate exposes all the types shared between an IC DBMS Canister and an external canister
You can import all the useful types and traits by using the prelude module:
```rust
use ic_dbms_api::prelude::*;
```
## Types
### DBMS
#### Database
- [`Database`](crate::prelude::Database)
#### Foreign Fetcher
- [`ForeignFetcher`](crate::prelude::ForeignFetcher)
#### Init
- [`IcDbmsCanisterArgs`](crate::prelude::IcDbmsCanisterArgs)
- [`IcDbmsCanisterInitArgs`](crate::prelude::IcDbmsCanisterInitArgs)
- [`IcDbmsCanisterUpdateArgs`](crate::prelude::IcDbmsCanisterUpdateArgs)
#### Query
- [`DeleteBehavior`](crate::prelude::DeleteBehavior)
- [`Filter`](crate::prelude::Filter)
- [`Query`](crate::prelude::Query)
- [`QueryBuilder`](crate::prelude::QueryBuilder)
- [`QueryError`](crate::prelude::QueryError)
- [`QueryResult`](crate::prelude::QueryResult)
- [`OrderDirection`](crate::prelude::OrderDirection)
- [`Select`](crate::prelude::Select)
#### Table
- [`ColumnDef`](crate::prelude::ColumnDef)
- [`ForeignKeyDef`](crate::prelude::ForeignKeyDef)
- [`InsertRecord`](crate::prelude::InsertRecord)
- [`TableColumns`](crate::prelude::TableColumns)
- [`TableError`](crate::prelude::TableError)
- [`TableRecord`](crate::prelude::TableRecord)
- [`UpdateRecord`](crate::prelude::UpdateRecord)
- [`ValuesSource`](crate::prelude::ValuesSource)
### Transaction
- [`TransactionError`](crate::prelude::TransactionError)
- [`TransactionId`](crate::prelude::TransactionId)
#### Dbms Types
- [`Blob`](crate::prelude::Blob)
- [`Boolean`](crate::prelude::Boolean)
- [`Date`](crate::prelude::Date)
- [`DateTime`](crate::prelude::DateTime)
- [`Decimal`](crate::prelude::Decimal)
- [`Int32`](crate::prelude::Int32)
- [`Int64`](crate::prelude::Int64)
- [`Nullable`](crate::prelude::Nullable)
- [`Principal`](crate::prelude::Principal)
- [`Text`](crate::prelude::Text)
- [`Uint32`](crate::prelude::Uint32)
- [`Uint64`](crate::prelude::Uint64)
- [`Uuid`](crate::prelude::Uuid)
#### Value
- ['DataType'](crate::prelude::DataType)
- [`Value`](crate::prelude::Value)
### Memory
- [`DataSize`](crate::memory::DataSize)
- [`Encode`](crate::memory::Encode)
- [`DecodeError`](crate::memory::DecodeError)
- [`MemoryError`](crate::memory::MemoryError)
- [`MemoryResult`](crate::memory::MemoryResult)
- [`MSize`](crate::memory::MSize)
- [`Page`](crate::memory::Page)
- [`PageOffset`](crate::memory::PageOffset)
## License
This project is licensed under the MIT License. See the [LICENSE](../LICENSE) file for details.