Metadata-Version: 2.4
Name: vfbLib
Version: 0.11.3
Summary: Tools for converting FontLab Studio 5 (VFB) files.
Author-email: Jens Kutílek <webmail@kutilek.de>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/LucasFonts/vfbLib
Project-URL: Documentation, https://vfblib.readthedocs.io/en/latest/
Project-URL: Bug Tracker, https://github.com/LucasFonts/vfbLib/issues
Project-URL: Changelog, https://github.com/LucasFonts/vfbLib/blob/main/CHANGELOG.md
Keywords: vfb,vfbLib,fonttools
Classifier: Environment :: Console
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fonttools[ufo]>=4.62.1
Requires-Dist: orjson<4,>=3.11.8
Requires-Dist: typing_extensions>=4.15.0
Requires-Dist: ufonormalizer>=0.6.3
Requires-Dist: ufoLib2[json]>=0.18.1
Provides-Extra: toml
Requires-Dist: tomli-w>=1.2.0; extra == "toml"
Provides-Extra: yaml
Requires-Dist: pyyaml>=6.0.3; extra == "yaml"
Provides-Extra: all
Requires-Dist: vfbLib[toml]; extra == "all"
Requires-Dist: vfbLib[yaml]; extra == "all"
Provides-Extra: test
Requires-Dist: coverage; extra == "test"
Requires-Dist: flake8; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: ruff; extra == "test"
Requires-Dist: types-pyyaml; extra == "test"
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: wheel; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: setuptools-scm[toml]; extra == "dev"
Requires-Dist: types-pyyaml; extra == "dev"
Provides-Extra: doc
Requires-Dist: sphinx>=8.2.3; extra == "doc"
Requires-Dist: sphinx_rtd_theme; extra == "doc"
Dynamic: license-file

# vfbLib

Converter and deserializer for FontLab Studio 5 VFB files.

FontLab’s own `vfb2ufo` converter is from 2015, only outputs UFO v2, and
contains serious bugs that are never going to be fixed. Its support on macOS is
subject to Apple’s mercy (no native support for Apple Silicon).

That’s why in 2022 a single determined programmer, me, Jens Kutílek, armed with nothing
but a hex editor set out to rectify this situation. In late 2025, Yuri Yarmola let me
have a look at the original VFB code from FontLab. I am very grateful for his kindness.
Without Yuri’s help, I would probably never have figured out some parts of the format.

The VFB file format is described in the
[vfbLib-rust](https://github.com/jenskutilek/vfbLib-rust/blob/main/FILEFORMAT.md) repo,
a work-in-progress implementation of vfbLib in rust.

## Installation

### Development Installation

To install from source in editable mode:

```bash
git clone git@github.com:LucasFonts/vfbLib.git
cd vfbLib
pip install -e .
```

### End-User Installation

`vfbLib` is on the Python Package Index. Install via pip:

```bash
pip install vfblib
```

## Usage

See the [description](DESCRIPTION.md) of the command line scripts.

## Copyright

© 2022-2026 by [LucasFonts GmbH](https://www.lucasfonts.com/), Berlin
