Skip to content

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

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

whizzes/imagekit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ImageKit Logo

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

Crates.io Documentation Build Clippy Formatter Tests

Usage

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

Then create an instance of ImageKit and initialize the client.

use imagekit::ImageKit;
use imagekit::management::Details;
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<dyn std::error::Error>> {
    let mut image_kit = ImageKit::new(
        "your_public_api_key",
        "your_private_api_key",
        "https://ik.imagekit.io/your_imagekit_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();

    // Retrieve details from a given file, in this case the file we just uploaded
    let details_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.

  • URL Generation
    • Basic Image Resizing
    • Crop, Crop Modes and Focus
    • Commonly Used Transformations
  • Signed URL Generation
  • File Upload (File Upload API)
    • From tokio::fs::File (Binary)
    • From std::fs::File (Binary)
    • From URL
    • From Base64
  • File Management
    • List Files
    • Search Files
    • Get File Details
    • Get File Versions
    • Get File Metadata
    • Custom Metadata Fields
      • Create
      • List
      • Update
      • Delete
    • Delete File
    • Update File Details
    • Tags
      • Bulk Addition
      • Bulk Deletion
    • AI Tags
      • Bulk Deletion
    • Delete File Version
    • Bulk Delete Files
    • Copy File
    • Move File
    • Rename File
    • Restore File Version
    • Folders
      • Create
      • Copy
      • Delete
      • Move
    • Bulk Job Status
    • Cache
    • Purge

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

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

Example

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:

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.

About

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

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages