Skip to main content

A utility for comparing two font files

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

diffenator3-1.1.4.tar.gz (104.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

diffenator3-1.1.4-py3-none-win_amd64.whl (15.3 MB view details)

Uploaded Python 3Windows x86-64

diffenator3-1.1.4-py3-none-win32.whl (15.1 MB view details)

Uploaded Python 3Windows x86

diffenator3-1.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (16.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64musllinux: musl 1.1+ ARM64

diffenator3-1.1.4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (16.4 MB view details)

Uploaded Python 3manylinux: glibc 2.12+ x86-64musllinux: musl 1.1+ x86-64

diffenator3-1.1.4-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (31.8 MB view details)

Uploaded Python 3macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file diffenator3-1.1.4.tar.gz.

File metadata

  • Download URL: diffenator3-1.1.4.tar.gz
  • Upload date:
  • Size: 104.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for diffenator3-1.1.4.tar.gz
Algorithm Hash digest
SHA256 099c6fa785c97ca355f4cac9da2c51be3ceb4bf381382afaf32539e4f78eab5f
MD5 d8c5ca18d1dee9f3b5da15b4a2976384
BLAKE2b-256 036cab88e585a02e3d6c9d4234cab2abe1c0de4137d2f6cefe34129a26cb8a34

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.4.tar.gz:

Publisher: release.yml on googlefonts/diffenator3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file diffenator3-1.1.4-py3-none-win_amd64.whl.

File metadata

  • Download URL: diffenator3-1.1.4-py3-none-win_amd64.whl
  • Upload date:
  • Size: 15.3 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for diffenator3-1.1.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f8c3facc2bbe5a40d6a0980aef459e0e0a1575ffcdc465e1c25af19d4b9ccae5
MD5 64b114e83fcef3392c02d937bd839da5
BLAKE2b-256 36a08a001d67956ce754a0aeb856e62f9cdca23088c3941152ec39fa29ab7edb

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.4-py3-none-win_amd64.whl:

Publisher: release.yml on googlefonts/diffenator3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file diffenator3-1.1.4-py3-none-win32.whl.

File metadata

  • Download URL: diffenator3-1.1.4-py3-none-win32.whl
  • Upload date:
  • Size: 15.1 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for diffenator3-1.1.4-py3-none-win32.whl
Algorithm Hash digest
SHA256 c0b9d62a20478173e0037a6e084b3d4ad5bad0039e8b3f96fa161e0b5881a575
MD5 44550441971a1a93825c1c2b87804e5a
BLAKE2b-256 292ffab6114ea15c8bef5a005edda1252d320fabab5c3aea3656d1042471616e

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.4-py3-none-win32.whl:

Publisher: release.yml on googlefonts/diffenator3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file diffenator3-1.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for diffenator3-1.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 e53495ae6d45c8baf467380d082b4edf7b2f3a12b222cfab7851684552d67dc9
MD5 f21d0dea697ae91607e9dc53d03bec1e
BLAKE2b-256 1d1340edd97c567791840b936e102daa338ee24868c34b100fc8430e1832953e

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl:

Publisher: release.yml on googlefonts/diffenator3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file diffenator3-1.1.4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for diffenator3-1.1.4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b50a2d6421233f19ff639637acc044fad34a0a6c1753ecfb5df8147d1cbaf732
MD5 36c7bc829b6a90ee099dc34c48cf783c
BLAKE2b-256 b7bdfeb977ca40686294e7673a359d3acaeeba628acd9c05332b2d7c305c56e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl:

Publisher: release.yml on googlefonts/diffenator3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file diffenator3-1.1.4-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for diffenator3-1.1.4-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 0d3987de550d4fe4d0537920cf1bb40b3f700759880af8b5b7cc1576be8c23bf
MD5 ee8c279bbef1dc8e3bdb02777c91540a
BLAKE2b-256 87e062cb6a7e20fc5e3da5ec4e117c54a041b12b6e76005dd71d9cab3444e3d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.4-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on googlefonts/diffenator3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page