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.2.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.2-py3-none-win_amd64.whl (15.3 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

diffenator3-1.1.2-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.2-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.2-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.2.tar.gz.

File metadata

  • Download URL: diffenator3-1.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 3d59576da3f54c8acd43b3083bbe1d93677d8212b60c41b16e57af0c356af738
MD5 90f2cae96d24f8e9218895438b9f872e
BLAKE2b-256 86745814db90b983bb96d341b9ce4679edcf70f32c1c1cec161ae7c8bb8a6af9

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.2.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.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: diffenator3-1.1.2-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.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 c969b021ada962ab0beb140d39c4bf788663e4bf6e053c94fcafd78fb4066cfe
MD5 5c4791f1a7d575ec85bb33b5bdcb8bd2
BLAKE2b-256 a795e3a37ef11148c612e7625c14e322f45d304c527e2d0db2f3a801537cdd17

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.2-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.2-py3-none-win32.whl.

File metadata

  • Download URL: diffenator3-1.1.2-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.2-py3-none-win32.whl
Algorithm Hash digest
SHA256 fd55f07f7b5497b329d0fa10620188493329167ad8dfba1650690203cb7a909e
MD5 600f71cffc6d40fcb823b877fa940a09
BLAKE2b-256 cba047b3a4d936c5241fb3f826b92613b86a1d3f710406ab1b743661d8c6e576

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.2-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.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for diffenator3-1.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 5a3e90a5b3352727f73f3c14de4092e27cb0ebabd3a36098c56cdbe96e5817e7
MD5 d4373a28373cfd072140b3a3d5f527c6
BLAKE2b-256 bee0afcfbcf8f6606a5d4045161e951de39a588150f79a9928cfc9a2f44cfbcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.2-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.2-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.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 46e26deb4576d5bacd6eb15c95255e5cd23b56aed61e1204bcfb50386712ae32
MD5 dc26c3e7a3b2dfe4254243637c2c6deb
BLAKE2b-256 c5b467a6911b0ef7005b87287ef9fd889b6eaaf4582c8da0a3c246f39e189247

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.2-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.2-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.2-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 dcd88071bb2255139d07e2b497b58687c62c95e3d6917312be1a5c61e7ccd0bb
MD5 04322d755f6b76b9b71afecb5e2ab987
BLAKE2b-256 2d6110b17364f9e9e893b4eb9271251740c837cce430157dafae1d560f32797d

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffenator3-1.1.2-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