Skip to main content

Diffenator3

This is a Rust port of diffenator2, a utility for comparing two font files. It comes in two flavours, command line and WASM.

The command line version compares two fonts and describes the differences between them; it produces reports in text, JSON and HTML format. By default, it compares variable fonts at their named instances, although you can also ask for comparisons at specific points in the design space, at the min/max/default for each axis or subdivisions in between, or at master locations. See the --help documentation of diffenator3 for more details.

You can customize the look and feel of the HTML report by editing the templates in the ~/.diffenator3/templates directory after running diffenator3 --html for the first time. Additionally, you can supply a --templates directory for per-project templates.

The WASM version compares two font files over the web and displays a HTML report of the differences. This runs the diffenator3 code directly inside your web browser - the fonts are not transferred across the Internet. You can use the WASM version at https://googlefonts.github.io/diffenator3

diff3proof

As well as diffenator3, there is another utility called diff3proof used to generate HTML proof files showing the difference between the fonts. This can be used in two modes: --sample-mode context (the default), which shows paragraphs of sample text for each language supported by the font, and --sample-mode cover, which shows a minimal text to cover all the shared codepoints in the font. These can be helpful for manually checking rendering differences in different browsers.

Additional utilities

If you build diffenator3 from source, there are three additional workspace crates which build some utilities which are mainly helpful for working on diffenator3 itself:

  • ttj serializes a TTF file to JSON in much the same way that ttx serializes to XML. However, there is no deserialization back to TTF at present.
  • kerndiffer is a limited version of diffenator3 just for checking kerning differences. You can achieve much the same functionality with diffenator3 --no-tables --no-words --no-glyphs.
  • rendertest is used to test the rendering and bitmap comparison functionality of diffenator3. It generates bitmap images of words in both fonts and then overlays them.

Installing

Binary versions can be obtained from the latest GitHub release; development versions can be obtained via the latest GitHub Action. The diffenator3 and diff3proof binaries are all you need - they contain all the templates and wordlists within them - so you can copy them to anywhere in your path.

Alternatively you can install from source with cargo install --git https://github.com/googlefonts/diffenator3.

License

This software is licensed under the Apache 2.0 License.

Release files for diffenator3 1.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for diffenator3 1.1.4
File Size Uploaded
diffenator3-1.1.4.tar.gz 104.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for diffenator3 1.1.4
File
diffenator3-1.1.4-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
diffenator3-1.1.4-py3-none-win32.whl Python 3 none Windows x86-32 Details
diffenator3-1.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl Python 3 none Linux musl 1.1+ ARM64, Linux glibc 2.17+ ARM64 Details
diffenator3-1.1.4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl Python 3 none Linux glibc 2.12+ x86-64, Linux musl 1.1+ x86-64 Details
diffenator3-1.1.4-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl Python 3 none macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details

Total release size: 95.1 MB

Release files / diffenator3-1.1.4.tar.gz

Download URL diffenator3-1.1.4.tar.gz
Size 104.0 kB
Tags Source
SHA-256 checksum
How to use checksums
099c6fa785c97ca355f4cac9da2c51be3ceb4bf381382afaf32539e4f78eab5f
BLAKE2b-256 checksum
How to use checksums
036cab88e585a02e3d6c9d4234cab2abe1c0de4137d2f6cefe34129a26cb8a34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 9, 2026.

Transparency log

Release files / diffenator3-1.1.4-py3-none-win_amd64.whl

Download URL diffenator3-1.1.4-py3-none-win_amd64.whl
Size 15.3 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
f8c3facc2bbe5a40d6a0980aef459e0e0a1575ffcdc465e1c25af19d4b9ccae5
BLAKE2b-256 checksum
How to use checksums
36a08a001d67956ce754a0aeb856e62f9cdca23088c3941152ec39fa29ab7edb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 9, 2026.

Transparency log

Release files / diffenator3-1.1.4-py3-none-win32.whl

Download URL diffenator3-1.1.4-py3-none-win32.whl
Size 15.1 MB
Tags Python 3 Windows x86-32
SHA-256 checksum
How to use checksums
c0b9d62a20478173e0037a6e084b3d4ad5bad0039e8b3f96fa161e0b5881a575
BLAKE2b-256 checksum
How to use checksums
292ffab6114ea15c8bef5a005edda1252d320fabab5c3aea3656d1042471616e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 9, 2026.

Transparency log

Release files / diffenator3-1.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl

Download URL diffenator3-1.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Size 16.5 MB
Tags Linux glibc 2.17+ ARM64 Linux musl 1.1+ ARM64 Python 3
SHA-256 checksum
How to use checksums
e53495ae6d45c8baf467380d082b4edf7b2f3a12b222cfab7851684552d67dc9
BLAKE2b-256 checksum
How to use checksums
1d1340edd97c567791840b936e102daa338ee24868c34b100fc8430e1832953e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 9, 2026.

Transparency log

Release files / diffenator3-1.1.4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl

Download URL diffenator3-1.1.4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Size 16.4 MB
Tags Linux glibc 2.12+ x86-64 Linux musl 1.1+ x86-64 Python 3
SHA-256 checksum
How to use checksums
b50a2d6421233f19ff639637acc044fad34a0a6c1753ecfb5df8147d1cbaf732
BLAKE2b-256 checksum
How to use checksums
b7bdfeb977ca40686294e7673a359d3acaeeba628acd9c05332b2d7c305c56e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 9, 2026.

Transparency log

Release files / diffenator3-1.1.4-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL diffenator3-1.1.4-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 31.8 MB
Tags Python 3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0d3987de550d4fe4d0537920cf1bb40b3f700759880af8b5b7cc1576be8c23bf
BLAKE2b-256 checksum
How to use checksums
87e062cb6a7e20fc5e3da5ec4e117c54a041b12b6e76005dd71d9cab3444e3d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.4 This release

6 release files

1.1.2

6 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page