1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257
|
# Change Log
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased]
## [0.18.0] - 2024-08-10
### Added
- WASM shapers support.
Thanks to [@asibahi](https://github.com/asibahi).
- Some performance improvements.
Thanks to [@LaurenzV](https://github.com/LaurenzV).
### Fixed
- Multiple bugs.
Thanks to [@LaurenzV](https://github.com/LaurenzV).
- `kerx` table parsing in some Apple fonts.
- Allow `hb_buffer_t::serial` to overflow/wrap-around instead of panicking.
## [0.17.0] - 2024-07-02
### Changed
- Bump `ttf-parser`.
## [0.16.0] - 2024-07-02
- Sync with HarfBuzz 9.0.0.
Thanks to [@LaurenzV](https://github.com/LaurenzV).
### Changed
- Bump `ttf-parser`.
- Use `core_maths` instead of `libm`. Should simplify the build process.
### Removed
- `no-std-float` build flag. Should be handled automatically now.
## [0.15.0] - 2024-06-29
- Sync with HarfBuzz 8.5.0 🎉<br>
`rustybuzz` is finally in-sync with `harfbuzz`.
Thanks to [@LaurenzV](https://github.com/LaurenzV).
### Changed
- When building without the `std` feature one must enable `no-std-float` feature instead.
### Fixed
- `gvar` phantom points handling which fixes some variable fonts shaping.
## [0.14.1] - 2024-06-12
### Fixed
- `no_std` build.
Thanks to [@jackpot51](https://github.com/jackpot51)
## [0.14.0] - 2024-05-10
- Sync with HarfBuzz 4.3.0.
Thanks to [@Pi-Cla](https://github.com/Pi-Cla) and [@LaurenzV](https://github.com/LaurenzV).
### Changed
- Bump `ttf-parser`.
- Bump Rust Edition to 2021.
## [0.13.0] - 2024-02-18
- Sync with HarfBuzz 4.1.0.
Thanks to [@LaurenzV](https://github.com/LaurenzV).
## [0.12.1] - 2023-12-16
### Added
- Derive `Hash` for `Feature`.
Thanks to [@laurmaedje](https://github.com/laurmaedje).
- `ShapePlan` is `Send` and `Sync` now.
Thanks to [@laurmaedje](https://github.com/laurmaedje).
## [0.12.0] - 2023-11-29
### Added
- Sync with HarfBuzz 2.9.1.
Thanks to [@bluebear94](https://github.com/bluebear94).
- `UnicodeBuffer::set_pre_context` and `UnicodeBuffer::set_post_context`.
Thanks to [@bluebear94](https://github.com/bluebear94).
- `shape_with_plan` function to allow cached `ShapePlan`s.
Thanks to [@vorporeal](https://github.com/vorporeal).
## [0.11.0] - 2023-10-15
### Added
- Sync with HarfBuzz 2.9.0.
Thanks to [@bluebear94](https://github.com/bluebear94).
## [0.10.0] - 2023-09-10
### Added
- Sync with HarfBuzz 2.8.0.
## [0.9.0] - 2023-09-09
### Added
- Sync with HarfBuzz 2.7.4. Thanks to [@bluebear94](https://github.com/bluebear94).
- State machines are autogenerated via `ragel` instead of manually translating them from C now.
Thanks to [@notgull](https://github.com/notgull).
### Changed
- Use `unicode-properties` crate instead of `unicode-general-category`.
Should significantly reduce compilation times.
Thanks to [@eddyb](https://github.com/eddyb).
### Fixed
- Panic in the Universal shaper. Thanks to [@notgull](https://github.com/notgull).
## [0.8.0] - 2023-06-12
### Changed
- Bump `ttf-parser`.
## [0.7.0] - 2023-02-04
### Added
- `UnicodeBuffer::add` thanks to [@bluebear94](https://github.com/bluebear94).
### Changed
- Bump `ttf-parser`.
- `Face::from_face` no longer returns `Option`.
## [0.6.0] - 2022-10-24
### Added
- `ttf-parser` is reexported now.
### Changed
- Bump `ttf-parser`.
## [0.5.3] - 2022-10-24
### Changed
- Revert 0.5.2 because it was a breaking change.
## [0.5.2] - 2022-10-22
### Added
- `ttf-parser` is reexported now.
### Changed
- Bump `ttf-parser`.
## [0.5.1] - 2022-06-11
### Added
- Implement `PartialOrd`, `Ord` and `Hash` for `Script`.
### Fixed
- `no_std` support thanks to [@CryZe](https://github.com/CryZe).
## [0.5.0] - 2022-02-20
### Changed
- `GSUB`, `GPOS`, `ankr`, `feat`, `kern`, `kerx`, `morx` and `trak`
tables parsing was moved to `ttf-parser`.
- `rustybuzz` no longer do any TrueType parsing. Everything is handled by `ttf-parser`.
### Fixed
- Multiple issues in AAT Lookup Table parsing.
## [0.4.0] - 2021-06-27
### Added
- `Face::from_face`, so you can create `rustybuzz::Face` directly from `ttf_parser::Face`.
Thanks to [@lain-dono](https://github.com/lain-dono)
- `no_std` support thanks to [@CryZe](https://github.com/CryZe).
- `GlyphInfo::unsafe_to_break` thanks to [@glowcoil](https://github.com/glowcoil).
### Changed
- Sync with harfbuzz 2.7.1
- Rename `GlyphInfo.codepoint` into `GlyphInfo.glyph_id` to remove confusion.
## [0.3.0] - 2020-12-05
### Ported
- Everything! 🎉
- Tables: `GSUB`, `GPOS`, `GDEF`, `ankr`, `feat`, `kern`, `kerx`, `morx`, `trak`.
- Main shaping logic.
- `hb_shape_plan_t` and `hb_ot_shape_plan_t`
- `hb_ot_map_t`
- `hb_ot_complex_shaper_t`
- OpenType layout (GSUB, GPOS).
- AAT layout.
- Normalization.
- Fallback shaper.
- Kerning.
### Changed
- Rename `Font` to `Face`.
Most of the changes in this release were made by [laurmaedje](https://github.com/laurmaedje).
## [0.2.0] - 2020-07-25
### Ported
- All complex shapers.
- Tables: `CBDT`, `CFF`, `CFF2`, `HVAR`, `MVAR`, `OS/2`, `SVG`, `VORG`, `VVAR`,
`avar`, `cmap`, `fvar`, `glyf`, `gvar`, `hhea`, `hmtx`, `post`, `sbix`, `vhea`, `vmtx`.
- `hb_buffer_t`
- `hb_script_t`
- `hb_feature_t`
- `hb_variation_t`
- `hb_language_t`
- `hb_font_t`
- `hb-ot-metrics`
- Unicode functions and tables.
- Buffer serialization.
### Changed
- Update to HarfBuzz 2.7.0
- Rename `Font::from_data` into `Font::from_slice`.
- Font is parsed via `ttf-parser` first.
And if the parsing fails, the `Font` will not be created.
`harfbuzz` allows malformed fonts.
### Removed
- `hb_font_funcs_t`. Only the embedded TrueType implementation is used.
- `hb_unicode_funcs_t`. Only the embedded Unicode implementation is used.
- `Font::set_scale`/`hb_font_set_scale`/`--font-size`. Shaping is always in font units now.
This simplifies the code quite a lot.
- Shaping plan caching.
- Fallback shaper.
- Unused `hdmx` table.
## [0.1.1] - 2020-07-04
### Fixed
- Compilation with an old XCode.
## 0.1.0 - 2020-07-04
At this point, this is just a simple Rust bindings to a stripped down harfbuzz.
### Added
- An absolute minimum Rust API.
- harfbuzz's shaping test suite had been ported to Rust.
### Changed
- harfbuzz source code was reformatted using clang-format.
### Removed
- Subsetting. This is probably a bit controversial, but I want to port only the shaper for now.
This is also removes around 7000 LOC.
- Arabic fallback shaper. Since it requires subsetting.
- Unused TrueType tables: BASE, COLR, CPAL, JSTF, MATH, STAT, bsln, fdsc, gasp, just, lcar, ltag, meta, name, opbd.
- All external dependencies: coretext, directwrite, freetype, gdi, glib, gobject, graphite, icu, uniscribe.
Embedded harfbuzz relies only on internal TrueType implementation.
- Most of the non-shaping harfbuzz API.
[Unreleased]: https://github.com/RazrFalcon/rustybuzz/compare/v0.18.0...HEAD
[0.18.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.17.0...v0.18.0
[0.17.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.16.0...v0.17.0
[0.16.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.15.0...v0.16.0
[0.15.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.14.1...v0.15.0
[0.14.1]: https://github.com/RazrFalcon/rustybuzz/compare/v0.14.0...v0.14.1
[0.14.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.13.0...v0.14.0
[0.13.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.12.1...v0.13.0
[0.12.1]: https://github.com/RazrFalcon/rustybuzz/compare/v0.12.0...v0.12.1
[0.12.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.11.0...v0.12.0
[0.11.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.10.0...v0.11.0
[0.10.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.9.0...v0.10.0
[0.9.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.8.0...v0.9.0
[0.8.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.5.3...v0.6.0
[0.5.3]: https://github.com/RazrFalcon/rustybuzz/compare/v0.5.2...v0.5.3
[0.5.2]: https://github.com/RazrFalcon/rustybuzz/compare/v0.5.1...v0.5.2
[0.5.1]: https://github.com/RazrFalcon/rustybuzz/compare/v0.5.0...v0.5.1
[0.5.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.1.1...v0.2.0
[0.1.1]: https://github.com/RazrFalcon/rustybuzz/compare/v0.1.0...v0.1.1
|