#bit-depth #image-processing #image #image-encoding #codec #color-space #byte

no-std zune-core

Core utilities for image processing in the zune family of crates

11 releases

0.5.0-rc1 May 12, 2024
0.5.0-rc0 Apr 7, 2024
0.4.12 Jan 15, 2024
0.4.11 Dec 2, 2023
0.2.1 Feb 25, 2023

#179 in Images

Download history 2300/week @ 2024-02-06 3495/week @ 2024-02-13 4717/week @ 2024-02-20 5399/week @ 2024-02-27 8025/week @ 2024-03-05 24330/week @ 2024-03-12 63154/week @ 2024-03-19 65101/week @ 2024-03-26 70473/week @ 2024-04-02 59505/week @ 2024-04-09 77780/week @ 2024-04-16 80859/week @ 2024-04-23 88270/week @ 2024-04-30 87149/week @ 2024-05-07 91918/week @ 2024-05-14 75342/week @ 2024-05-21

357,821 downloads per month
Used in 110 crates (17 directly)

MIT OR Apache-2.0 OR Zlib

1.5K SLoC

Zune core

Core primitives necessary for image manipulations

This crate contains small set of primitives necessary for image manipulations which are shared among most zune- family of decoders and encoders.

Items present

Currently,it contains.

  • Colorspace definitions
  • Bit depth definitions.
  • Decoder and encoder options


Core routines shared by all libraries

This crate provides a set of core routines shared by the decoders and encoders under zune umbrella

It currently contains

  • A bytestream reader and writer with endian aware reads and writes
  • Colorspace and bit depth information shared by images
  • Image decoder and encoder options
  • A simple enum type to hold image decoding results.

This library is #[no_std] with alloc feature needed for defining Vec which we need for storing decoded bytes.


  • no_std: Enables #[no_std] compilation support.

  • serde: Enables serializing of some of the data structures present in the crate


zune-image supports many different input and output devices. For input readers we can read anything that implements BufRead + Seek and provide an optimized routine for handling in memory buffers by using ZCursor.

For output, we support anything that implements Write trait, this includes files, standard io streams network sockets, etc

In a no_std environment. We can write to in memory buffers &mut [u8] and &mut Vec<u8>

If you have an in memory buffer, use ZCursor, it's optimized for in memory buffers.