ImageKit Logo

Rust API Client for ImageKit.io a file storage and image processing service

[![Crates.io](https://img.shields.io/crates/v/imagekit.svg)](https://crates.io/crates/imagekit) [![Documentation](https://docs.rs/imagekit/badge.svg)](https://docs.rs/imagekit) ![Build](https://github.com/EstebanBorai/imagekit/workflows/build/badge.svg) ![Clippy](https://github.com/EstebanBorai/imagekit/workflows/clippy/badge.svg) ![Formatter](https://github.com/EstebanBorai/imagekit/workflows/fmt/badge.svg) ![Tests](https://github.com/EstebanBorai/imagekit/workflows/test/badge.svg)

Usage

You must retrieve your Public and Private Keys from the ImageKit Developer Options.

Then create an instance of ImageKit and initialize the client.

```rust use imagekit::ImageKit; use imagekit::delete::Delete; use imagekit::upload::types::FileType; use imagekit::upload::{Options, Upload, UploadFile}; use tokio::fs::File;

[tokio::main]

async fn main() -> Result<(), Box> { let mut imagekit = ImageKit::new( "yourpublicapikey", "yourprivateapikey", "https://ik.imagekit.io/yourimagekit_id/", );

// Upload an image from File
let file = File::open("assets/ferris.jpeg").await.unwrap();
let opts = Options::new(upload_file, "ferris");
let upload_result = imagekit.upload(opts).await.unwrap();

// Delete a file
let delete_result = imagekit.delete(upload_result.file_id).await;

} ```

Features

The main goal of this crate is to support the main three functionalities provided by ImageKit. URL Generation, File Upload and File Management.

The following list, provides a closer view to supported features and planned features which are not yet implemented. Feel free to contribute by opening an issue, pull request or discussion.

If you notice theres missing features in this list, please open an issue or PR.

Release

In order to create a release you must push a Git tag as follows

sh git tag -a <version> -m <message>

Example

sh git tag -a v0.1.0 -m "First release"

Tags must follow semver conventions Tags must be prefixed with a lowercase v letter.

Then push tags as follows:

sh git push origin main --follow-tags

Contributing

Every contribution to this project is welcome. Feel free to open a pull request, an issue or just by starting this project.

License

As most Rust projects, this crate is licensed under both, the Apache License and the MIT License.