harfbuzz

HarfBuzz text shaping engine

OTHER License

Downloads
255.1K
Stars
4K
Committers
248

Bot releases are hidden (Show)

harfbuzz -

Published by alerque about 3 years ago

  • Unicode 14.0 support (David Corbett).

  • The hb-subset API and the harfbuzz-subset library's ABI are now declared stable. The harfbuzz-subset library would not have been possible without the work of Garret Rieger and Qunxin Liu from Google Fonts, and the earlier work of Michiharu Ariza from Adobe.

  • The hb-style API is now stable and no longer experimental.

  • New API:
    +hb_style_tag_t
    +hb_style_get_value()
    +hb_subset_input_t
    +hb_subset_flags_t
    +hb_subset_sets_t
    +hb_subset_input_create_or_fail()
    +hb_subset_input_reference()
    +hb_subset_input_destroy()
    +hb_subset_input_set_user_data()
    +hb_subset_input_get_user_data()
    +hb_subset_input_unicode_set()
    +hb_subset_input_glyph_set()
    +hb_subset_input_set()
    +hb_subset_input_get_flags()
    +hb_subset_input_set_flags()
    +hb_subset_or_fail()

  • Removed old unstable harfbuzz-subset API:
    -hb_subset_input_nameid_set()
    -hb_subset_input_namelangid_set()
    -hb_subset_input_layout_features_set()
    -hb_subset_input_no_subset_tables_set()
    -hb_subset_input_drop_tables_set()
    -hb_subset_input_set_drop_hints()
    -hb_subset_input_get_drop_hints()
    -hb_subset_input_set_desubroutinize()
    -hb_subset_input_get_desubroutinize()
    -hb_subset_input_set_retain_gids()
    -hb_subset_input_get_retain_gids()
    -hb_subset_input_set_name_legacy()
    -hb_subset_input_get_name_legacy()
    -hb_subset_input_set_overlaps_flag()
    -hb_subset_input_get_overlaps_flag()
    -hb_subset_input_set_notdef_outline()
    -hb_subset_input_get_notdef_outline()
    -hb_subset_input_set_no_prune_unicode_ranges()
    -hb_subset_input_get_no_prune_unicode_ranges()
    -hb_subset()

harfbuzz -

Published by alerque about 3 years ago

  • Final subset API is in place and if no issues are discovered, it will be the stable subset API of HarfBuzz 3.0.0. Old API is kept to ease transition, but will be removed in 3.0.0.
  • Various fuzzer-found bug fixes.
  • hb_buffer_append() now handles the pre- and post-context which previously were left unchanged in the destination buffer.
  • hb-view / hb-shape now accept following new arguments:
    • --unicodes-before/after: takes a list of hex numbers that represent Unicode
      codepoints.
  • Undeprecated API:
    hb_set_invert()
harfbuzz - 2.9.0

Published by khaledhosny about 3 years ago

  • Subsetter API is being stabilized, with the first stable API to happen in
    3.0.0 release (https://github.com/harfbuzz/harfbuzz/issues/3078).
  • Support multiple variation axes with same tag, aka HOI.
  • The “coretext” testing shaper now passes font variations to CoreText.
  • hb-shape/hb-view does not break line at new lines unless text is read from
    file.
  • hb-view and hb-subset has a --batch now, similar to hb-shape.
  • The --batch mode now uses ; as argument separator instead of : used previously.
  • The --batch in hb-shape does not expect 0th argument anymore. That is, the
    lines read are interpreted as argv[1:], instead of argv[0:].
  • The --batch option has been undocumented. We are ready to document it; send
    feedback if you find it useful.
  • hb-subset got arguments revamps. Added much-requested --gids-file, --glyphs,
    --glyphs-file, --unicodes-file, supporting ranges in --unicodes.
  • Various bug fixes.
harfbuzz -

Published by alerque over 3 years ago

  • Shaping LTR digits for RTL scripts now makes the native direction of the
    digits LTR, applying shaping and positioning rules on the same glyph order as
    Uniscribe. (Jonathan Kew, Khaled Hosny).
  • Subsetting COLR v1 and CPAL tables is now supported. (Garret Rieger, Qunxin Liu)
  • Various fixes and improvements to the subsetter. (Garret Rieger, Qunxin Liu, Behdad)
  • When applying morx table, mark glyph widths should not be zeroed. (Jonathan Kew)
  • GPOS is preferred over kerx, if GSUB was applied. (Behdad)
  • Regional_Indicator pairs are grouped together when clustering. (Behdad)
  • New APIs:
    +hb_blob_create_or_fail()
    +hb_blob_create_from_file_or_fail()
    +hb_set_copy()
harfbuzz -

Published by alerque over 3 years ago

  • Subsetter now fully supports GSUB/GPOS/GDEF tables (including variations); as
    such, layout tables are retained by subsetter by default. (Garret Rieger, Qunxin Liu)
  • Build scripts no longer check for FontConfig as HarfBuzz does not use it.
  • hb-view supports iTerm2 and kitty inline image protocols (Khaled Hosny),
    it can also use Chafa for terminal graphics if available (Hans Petter Jansson).
harfbuzz -

Published by alerque over 3 years ago

  • Shape joining scripts other than Arabic/Syriac using the Universal Shaping Engine.
    Previously these were shaped using the generalized Arabic shaper. (David Corbett)
  • Fix regression in shaping of U+0B55 ORIYA SIGN OVERLINE. (David Corbett)
  • Update language tags. (David Corbett)
  • Variations: reduce error: do not round each interpolated delta. (Just van Rossum)
  • Documentation improvements. (Khaled Hosny, Nathan Willis)
  • Subsetter improvements: subsets most, if not all, lookup types now. (Garret Rieger, Qunxin Liu)
  • Fuzzer-found fixes and other improvements when memory failures happen. (Behdad)
  • Removed most atomic implementations now that we have C++11 atomic impl. (Behdad)
  • General codebase upkeep; using more C++11 features: constexpr constructors, etc. (Behdad)
harfbuzz - 2.7.4

Published by alerque almost 4 years ago

  • Fix missing --enable-introspection configure option from previous release tarball.
  • Documentation updates.
harfbuzz -

Published by alerque almost 4 years ago

  • Update USE shaper to 2020-08-13 specification, and other improvements.
  • Don’t disable liga feature in myanmar shaper, to match Uniscribe.
  • Improvements to language and script tags handling.
  • Update language system tag registry to OpenType 1.8.4
  • Support for serializing and deserializing Unicode buffers. Serialized buffers
    are now delimited with <> or [] based on whether it is a Unicode or
    glyphs buffer.
  • Increase buffer work limits to handle fonts with many complex lookups.
  • Handle more shaping operations in trace output.
  • Memory access fixes.
  • More OOM fixes.
  • Improved documentation.
  • Build system improvements.
  • New API:
    +hb_buffer_has_positions()
    +hb_buffer_serialize()
    +hb_buffer_serialize_unicode()
    +hb_buffer_deserialize_unicode()
harfbuzz - 2.7.2

Published by khaledhosny about 4 years ago

  • Fix a regression in the previous release that caused a crash with Kaithi.
  • More OOM fixes.
harfbuzz - 2.7.1

Published by ebraminio about 4 years ago

Overview of changes leading to 2.7.1
Thursday, Aug 13, 2020

  • ot-funcs now handles variable empty glyphs better when hvar/vvar isn't present.
  • Reverted a GDEF processing regression.
  • A couple of fixes to handle OOM better.
harfbuzz - 2.7.0

Published by ebraminio about 4 years ago

Overview of changes leading to 2.7.0
Saturday, July 25, 2020

  • Use an implementation for round that always rounds up, some minor fluctuations
    are expected on var font specially when hb-ot callback is used.
  • Fix an AAT's kerx issue on broken rendering of Devanagari Sangam MN.
  • Remove AAT's lcar table support from _get_ligature_carets API, not even much
    use on macOS installed fonts (only two files). GDEF support is the recommended
    one and expected to work properly after issues fixed two releases ago.
  • Minor memory fixes to handle OOM better specially in hb-ft.
  • Minor .so files versioning scheme change and remove stable/unstable scheme
    differences, was never used in practice (always default to stable scheme).
  • We are now suggesting careful packaging of the library using meson,
    https://github.com/harfbuzz/harfbuzz/wiki/Notes-on-migration-to-meson
    for more information.
  • Distribution package URL is changed, either use GitHub generated tarballs,
    https://github.com/harfbuzz/harfbuzz/archive/$pkgver.tar.gz
    or, even more preferably use commit hash of the release and git checkouts like,
    git+https://github.com/harfbuzz/harfbuzz#commit=$commit
harfbuzz - 2.6.8

Published by ebraminio over 4 years ago

Overview of changes leading to 2.6.8
Monday, June 22, 2020

  • New API to fetch glyph alternates from GSUB table.
  • hb-coretext build fix for macOS < 10.10.
  • Meson build fixes, cmake port removal is postponed but please prepare for
    it and give us feedback.
    Autotools is still our main build system however please consider
    experimenting with meson also for packaging the library.
  • New API:
    +hb_ot_layout_lookup_get_glyph_alternates()
harfbuzz - 2.6.7

Published by ebraminio over 4 years ago

Overview of changes leading to 2.6.7
Wednesday, June 3, 2020

  • Update to Unicode 13.0.0.
  • Fix hb_ot_layout_get_ligature_carets for fonts without lcar table, it was
    completely broken for all the other fonts since 2.1.2.
  • As a part of our migration to meson, this release will be the last one
    to provide cmake port files but autotools still is our main build system.
    There is a possibility that the next version or the after be released
    using meson.
harfbuzz - 2.6.6

Published by ebraminio over 4 years ago

Overview of changes leading to 2.6.6
Tuesday, May 12, 2020

  • A fix in AAT kerning for Geeza Pro.
  • Better support for resource fork fonts on macOS.
harfbuzz - 2.6.5

Published by ebraminio over 4 years ago

Overview of changes leading to 2.6.5
Friday, April 17, 2020

  • Add experimental meson build system. Autotools is still the primary
    and supported build system.
  • AAT is now always preferred for horizontal scripts when both AAT and OT
    layout tables exist at the same time.
  • Subsetter improvements.
  • New API:
    +hb_ft_font_lock_face()
    +hb_ft_font_unlock_face()
harfbuzz -

Published by behdad almost 5 years ago

Overview of changes leading to 2.6.4
Monday, October 29, 2019

  • Small bug fix.
  • Build fixes.
harfbuzz -

Published by behdad almost 5 years ago

Overview of changes leading to 2.6.3
Monday, October 28, 2019

  • Misc small fixes, mostly to build-related issues.
  • New API:
    +hb_font_get_nominal_glyphs()
harfbuzz -

Published by behdad about 5 years ago

Overview of changes leading to 2.6.2
Monday, September 30, 2019

  • Misc small fixes, mostly to build-related issues.
harfbuzz -

Published by behdad about 5 years ago

Overview of changes leading to 2.6.1
Thursday, August 22, 2019

  • Fix regression with hb_font_create_sub_font scaling introduced in 2.6.0.
  • Change interpretation of font PTEM size / CoreText font size handling.
    See https://github.com/harfbuzz/harfbuzz/pull/1484
  • hb-ot-font: Prefer symbol cmap subtable if present.
  • Apply 'dist'/'abvm'/'blwm' features to all scripts.
  • Drop experimental DirectWrite API.
harfbuzz -

Published by behdad about 5 years ago

Overview of changes leading to 2.6.0
Tuesday, August 13, 2019

  • New OpenType metrics, baseline, and metadata table access APIs.
  • New API to set font variations to a named-instance.
  • New hb-gdi.h header and API for creating hb_face_t from HFONT.
  • Amalgam: Provide a single-file harfbuzz.cc file for easier alternate building.
  • More size-reduction configurable options, enabled by HB_TINY.
  • New API:
    +hb_font_set_var_named_instance()
    +hb_gdi_face_create()
    +hb_ot_layout_baseline_tag_t
    +hb_ot_layout_get_baseline()
    +hb_ot_meta_tag_t
    +hb_ot_meta_get_entry_tags()
    +hb_ot_meta_reference_entry()
    +hb_ot_metrics_tag_t
    +hb_ot_metrics_get_position()
    +hb_ot_metrics_get_variation()
    +hb_ot_metrics_get_x_variation()
    +hb_ot_metrics_get_y_variation()
Package Rankings
Top 3.3% on Spack.io
Top 15.69% on Repo1.maven.org
Top 19.66% on Anaconda.org
Top 3.06% on Formulae.brew.sh
Top 4.56% on Conda-forge.org
Badges
Extracted from project README
Linux CI Status CircleCI Build Status OSS-Fuzz Status Coverity Scan Build Status Codacy Badge Codecov Code Coverage Packaging status OpenSSF Scorecard xkcd-derived image Packaging status