• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

docs/H07-Mar-2021-521424

include/H07-Mar-2021-313230

src/H07-Mar-2021-17,72013,927

subprojects/H07-Mar-2021-308253

tests/H03-May-2022-2,5662,236

util/H07-Mar-2021-959740

.appveyor.ymlH A D07-Mar-20211,011 4936

.travis.ymlH A D07-Mar-20211.7 KiB6858

LICENSEH A D07-Mar-20211.5 KiB2824

README.mdH A D07-Mar-20211.7 KiB5033

meson.buildH A D03-May-20225.9 KiB287245

README.md

1[![Build Status](https://travis-ci.com/khaledhosny/ots.svg?branch=main)](https://travis-ci.com/khaledhosny/ots)
2[![Build status](https://ci.appveyor.com/api/projects/status/0l9ms6g47corescm/branch/main?svg=true)](https://ci.appveyor.com/project/khaledhosny/ots/branch/main)
3[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/ots.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:ots)
4
5OpenType Sanitizer
6==================
7
8The OpenType Sanitizer (OTS) parses and serializes OpenType files (OTF, TTF)
9and WOFF and WOFF2 font files, validating them and sanitizing them as it goes.
10
11The C library is integrated into Chromium and Firefox, and also simple
12command line tools to check files offline in a Terminal.
13
14The CSS [font-face property][1] is great for web typography. Having to use images
15in order to get the correct typeface is a great sadness; one should be able to
16use vectors.
17
18However, on many platforms the system-level TrueType font renderers have never
19been part of the attack surface before, and putting them on the front line is
20a scary proposition... Especially on platforms like Windows, where it's a
21closed-source blob running with high privilege.
22
23Building from source
24--------------------
25
26Instructions below are for building standalone OTS utilities, if you want to
27use OTS as a library then the recommended way is to copy the source code and
28integrate it into your existing build system. Our build system does not build a
29shared library intentionally.
30
31Build OTS:
32
33    $ meson build
34    $ ninja -C build
35
36Run the tests (if you wish):
37
38    $ ninja -C build test
39
40Usage
41-----
42
43See [docs](docs)
44
45* * *
46
47Thanks to Alex Russell for the original idea.
48
49[1]: http://www.w3.org/TR/CSS2/fonts.html#font-descriptions
50