{"id":18219625,"url":"https://github.com/kivvil/libexif-wrapper","last_synced_at":"2025-04-07T22:33:58.327Z","repository":{"id":220295278,"uuid":"751010558","full_name":"Kivvil/libexif-wrapper","owner":"Kivvil","description":"A safe Rust wrapper aroung libexif.","archived":false,"fork":false,"pushed_at":"2024-03-10T11:26:11.000Z","size":2859,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T05:03:22.115Z","etag":null,"topics":["libexif","rust","rust-lang","wrapper"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kivvil.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-31T18:58:21.000Z","updated_at":"2024-08-08T20:58:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"0f2af932-bcb8-42b2-a402-918a08efb9e8","html_url":"https://github.com/Kivvil/libexif-wrapper","commit_stats":null,"previous_names":["kivvil/libexif-wrapper"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kivvil%2Flibexif-wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kivvil%2Flibexif-wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kivvil%2Flibexif-wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kivvil%2Flibexif-wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kivvil","download_url":"https://codeload.github.com/Kivvil/libexif-wrapper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247742832,"owners_count":20988681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["libexif","rust","rust-lang","wrapper"],"created_at":"2024-11-03T19:05:01.226Z","updated_at":"2025-04-07T22:33:58.322Z","avatar_url":"https://github.com/Kivvil.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A safe Rust wrapper aroung libexif.  \n\nLibexif is a C library for extracting EXIF data from picture files. This crate contains a safe  \nwrapper around libexif. This crate also exposes unsafe rust bindings for libexif through the [`bindings`] module.  \n  \nThe libexif static library will be linked statically during build time. Libexif needs to be  \ninstalled to build the bindings. The bindings are generated using bindgen. By default, the  \nlibexif static library is searched using pkg-config. To manually give a file path to the  \nlibexif.a file, set the `LIBEXIF_STATIC_LIBRARY_PATH` environment variable during build time.  \n  \nRun \n```bash\ncargo add libexif-wrapper \n```\n to add this crate as a dependency.  \n  \n## Example  \n```rust  \nuse libexif_wrapper::{Exif, ExifIfd, ExifTag};  \n  \nfn main() {  \n    let exif = Exif::from_jpeg_file(\"test_resources/DSC_5613.jpg\").unwrap();  \n    let datetime = exif.get_entry_value(ExifIfd::IfdExif, ExifTag::DateTimeOriginal).unwrap();  \n    println!(\"The picture was taken on: {}\", datetime);  \n}  \n```  \n  \n## Extracting maker notes  \nIn addition to standardized EXIF tags, most camera manufacturers use the maker note exif tag to store useful information about the  \nphoto. Maker notes are specific to the camera manufacturer. Note that libexif may not be able  \nto decode all maker note tags.  \n```rust  \nuse libexif_wrapper::{Exif, ExifIfd, ExifTag};  \n  \nfn main() {  \n    let exif = Exif::from_jpeg_file(\"test_resources/DSC_5613.jpg\").unwrap();  \n    let make = exif.get_entry_value(ExifIfd::Ifd0, ExifTag::Make).unwrap();  \n    println!(\"The picture was taken with a camera by {}\", make);  \n    // Get maker notes specific to Nikon cameras  \n    if make == \"NIKON CORPORATION\" {  \n        // 0x0084 is the maker note tag ID for lens type in Nikon's photos.  \n        // A list of maker notes for specific camera manudacturers can be found at https://exiftool.org/TagNames/index.html  \n        let lens = exif.get_maker_note(0x0084).unwrap();  \n        println!(\"The lens used was: {}\", lens.value);  \n    }  \n}  \n```  \n  \n## Installing libexif  \n```bash  \ncurl -L https://github.com/libexif/libexif/releases/download/v0.6.24/libexif-0.6.24.tar.bz2 | tar -jsx  \ncd libexif-0.6.24  \n./configure \u0026\u0026 make  \nsudo make install  \n```\n  \nLibexif is only required during build time, as it is linked statically.  \n  \nLibexif is licensed under the LGPL-2.1 license  \nThis crate is licensed under the Apache-2.0 license.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkivvil%2Flibexif-wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkivvil%2Flibexif-wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkivvil%2Flibexif-wrapper/lists"}