11 个重大版本更新

0.12.0 2019年1月2日
0.11.0 2018年12月29日
0.10.0 2018年12月27日
0.7.0 2018年6月17日

#16 in #zero-allocation


cff 中使用

Apache-2.0 许可

11KB
186 行代码(不包括注释)

sfnt

crates.io docs.rs travis-ci.com

零分配的 SFNT 解析器。

在 Apache License 2.0 许可下发布。

支持 Rust 1.31.0 及以上版本。

示例

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);
}

依赖项

~2MB
~47K SLoC