metabase-api-rs-0.1.0-alpha.2 has been yanked.
metabase-api-rs
โ ๏ธ Alpha Release - This is an experimental version. API may change. Not recommended for production use.
A simplified and efficient Rust client for the Metabase API.
Features
- ๐ Simple API: Clean and intuitive interface
- ๐ Automatic Authentication: Handles session management automatically
- ๐ Retry Logic: Built-in exponential backoff for failed requests
- ๐ฆ Modular Design: Use only what you need with feature flags
- ๐ฆ Type Safe: Leverages Rust's type system for safety
- ๐งช Well Tested: 100+ tests with ~80% coverage
- ๐ Examples: Ready-to-use sample code included
Quick Start
use ;
use Duration;
async
Examples
See the examples/
directory for more comprehensive examples:
simple_example.rs
- Basic authentication and API usagecrud_simple.rs
- CRUD operations on Collectionssql_query_simple.rs
- Execute SQL queries directly
Installation
Add this to your Cargo.toml
:
[]
= "0.1.0-alpha.1"
= { = "1", = ["rt-multi-thread", "macros", "time"] }
= "1.0"
Features
cache
- Enable in-memory cachingperformance
- Enable performance optimizationsquery-builder
- Enable MBQL query builderfull
- Enable all features
Architecture
This library uses a simplified 3-layer architecture:
- API Layer: Public interface and client
- Core Layer: Business logic and models
- Transport Layer: HTTP communication and retry logic
Documentation
For detailed documentation and development guidelines, see the docs/
directory:
Development
This project follows strict TDD (Test-Driven Development) practices. All development should use the provided Taskfile commands:
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.