vips 0.2.0

Rust bindings for libvips: fast, low-memory image processing with a safe, ergonomic API.
Documentation
use vips::*;

#[test]
fn initialization_retries_and_instance_drop_keeps_live_images_usable() -> Result<()> {
    assert!(VipsInstance::new("bad\0name", false).is_err());
    assert!(!is_initialized());
    let image = {
        let _instance = VipsInstance::new("initialization-test", false)?;
        assert!(is_initialized());
        black(2, 2)?
    };
    assert_eq!(image.avg()?, 0.0);
    assert!(VipsInstance::new("duplicate", false).is_err());
    let callers: Vec<_> = (0..8).map(|_| std::thread::spawn(|| init(None))).collect();
    for caller in callers {
        caller.join().unwrap()?;
    }
    Ok(())
}