11 breaking releases

0.12.0 Jan 2, 2019
0.11.0 Dec 29, 2018
0.10.0 Dec 27, 2018
0.7.0 Jun 17, 2018

#16 in #zero-allocation


Used in cff

Apache-2.0

11KB
186 lines

sfnt

crates.io docs.rs travis-ci.com

A zero-allocation SFNT parser.

Released under the Apache License 2.0.

Supported on Rust 1.31.0 and later.

Example

use std::fs::{File};
use std::io::{Read};

use sfnt::{Record, Sfnt, Tag};

fn main() {
    // Read the font file into memory.
    let mut file = File::open("tests/resources/OpenSans-Italic.ttf").unwrap();
    let mut bytes = vec![];
    file.read_to_end(&mut bytes).unwrap();

    // Parse the font file and find one of the tables in the font file.
    let sfnt = Sfnt::parse(&bytes).unwrap();
    let (record, bytes) = sfnt.find(b"head").unwrap();

    assert_eq!(record, Record {
        tag: Tag(b"head"),
        checksum: 4165466467,
        offset: 316,
        length: 54,
    });

    assert_eq!(bytes.len(), 54);
}

Dependencies

~2MB
~46K SLoC