Skip to main content

Crate raves_metadata

Crate raves_metadata 

Source
Expand description

§raves_metadata

A library to parse and handle metadata from a variety of media file formats.

§Progress and Features

This library is currently in its early stages. I’ll document progress and features when that’s necessary.

§Contributing

Contributions are welcome! Please submit PRs or issues at your leisure.

§License

This project is dual-licensed under either the Apache License 2.0 or the MIT License at your option.

For more information, please see the LICENSE-APACHE and LICENSE-MIT files at the root of this repository.

§Why this project?

I was making a gallery app for Android called Raves! However, I was having a lot of trouble finding a suitable library that did metadata parsing and editing.

§Oh, dang! So, why not use Exiv2?

Exiv2 is a great project with a wonderful community! However, when trying to use it for my project, I faced some challenges. It is…

  • released under a copyleft license
    • …resulting in it being less accessible for those using permissive licenses
    • and challenging to get working on Android (…as a dylib)
  • written in C++
    • …meaning it lacks C bindings with a proper API, so it’s hard to use in Rust
  • not particularly portable
    • …which is probably my fault, but it still scares me

For people who don’t have specific requirements, Exiv2 is an incredible option. However, it just wouldn’t work for me, no matter how hard I tried.

Modules§

exif
Exif is a media metadata format primarily used by cameras.
iptc
An IPTC parser implementation.
magic_number
Helps handle files without knowing their file type beforehand.
providers
Providers
xmp
Implements an XMP parser.

Structs§

Wrapped
A wrapper struct around metadata standard types.

Enums§

MaybeParsed
Metadata that might have been parsed already.

Traits§

MetadataProvider
A media file with support for various metadata formats.
MetadataProviderRaw
Raw helpers for MetadataProvider implementors.

Functions§

get
Checks the file type of the given file.
parse
Attempts to parse the given file for any MetadataProvider, such as JPEG or MP4.

Type Aliases§

MaybeParsedExif
MaybeParsedIptc
MaybeParsedXmp