arxivis 1.0.0

Official Rust SDK for the Arxivis document store
Documentation
//! # arxivis
//!
//! Official Rust SDK for the [Arxivis](https://github.com/v019-Labs/arxivis) document store.
//!
//! ## Quick start
//!
//! ```rust,no_run
//! use arxivis::{ArxivisClient, UploadOptions};
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//!     let client = ArxivisClient::new("http://localhost:8080", "axv_xxxx_yyyy")?;
//!
//!     // Upload a file
//!     let data = std::fs::read("invoice.pdf")?;
//!     let record = client
//!         .upload(
//!             data,
//!             "invoice.pdf",
//!             UploadOptions::new()
//!                 .path("/invoices/2024/")
//!                 .tags(vec!["cliente".into(), "enero".into()]),
//!         )
//!         .await?;
//!     println!("stored: {} ({} bytes)", record.id, record.size);
//!
//!     // List files
//!     let result = client.list("/invoices/2024/", Default::default()).await?;
//!     for f in &result.files {
//!         println!("{}", f.original_name);
//!     }
//!
//!     // Download
//!     let bytes = client.download(&record.id).await?;
//!     std::fs::write("copy.pdf", &bytes)?;
//!
//!     // Delete
//!     client.delete_file(&record.id).await?;
//!
//!     Ok(())
//! }
//! ```

pub mod client;
pub mod error;
pub mod types;

pub use client::ArxivisClient;
pub use error::ArxivisError;
pub use types::{
    ApiKey, CreateKeyResult, FileRecord, ListOptions, ListResult, SearchOptions, SearchResult,
    Stats, UploadOptions,
};