All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add basic support for font variations (see PR #32)
- Improve documentation around font variations and font funcs.
- Breaking Remove reexport of harfbuzz-sys (this was a bad idea, since we inherit any breaking changes made in harfuzz-sys automatically)
- Update harfbuzz-sys to 0.5
- Update rusttype to 0.9
- Improve README
- Cargo test no longer may fail spuriously because of harfbuzz-internal serialization format not being consistent
- Since harfbuzz-sys 0.5.0 made breaking changes (see issue #27) we do not support it for now. If you need the newest harfbuzz-sys please make a comment on the issue. The current plan is to push a new major release of harfbuzz_rs 2.0.0.
- Reexport cargo features from
harfbuzz-sys
(thanks zenixls2) - Add new API to append
UnicodeBuffer
s to existing buffers - Add new API
with_bytes_owned
forBlob
to allow creating blobs fromArc<Vec<u8>>
and the like
- Off-by-one error in cluster ranges for features
- The project now builds again with rusttype < 0.9
This release does not build.
- Updated dependencies (
harfbuzz-sys
and the optional dep.rusttype
)
- Builds on Android now #20
- Memory leak on face creation
- Memory leak on font creation #22
- BufferSerializer now correctly serializes a single glyph #23
This is the 1.0 release of harfbuzz_rs. There are still many API's left to be covered by this crate however I think the current API should be able to remain stable.
Face::empty
constructor as a simple way to construct the empty faceFeature
struct that wrapshb_feature_t
and has an easy to use constructorUnicodeBuffer::add_str_item
to allow providing context to the string being shaped.UnicodeBuffer::preallocate
- Reexport of
harfbuzz_sys
ashb
to facilitate use of unwrapped functions
- removed kerning callbacks from FontFuncs (following the upstream harfbuzz change). This also enabled updating to harfbuzz-sys 0.3.
- updated to use Rust 2018
- Further improved docs
- constructor for
Blob
from a mutable slice Font::empty
as a simple way to construct the empty font- support for serializing a
GlyphBuffer
's contents create_harfbuzz_rusttype_font
: a new way to create a font with Rusttype font funcs (the oldSetRustTypeFuncs
trait is deprecated)
- lifetime of slice returned by
Blob::get_data
(could cause UB)
- The rustup feature is no longer enabled by default
SetRustTypeFuncs
is now deprecated in favor ofcreate_harfbuzz_rusttype_font
- Internal representation of smart pointers (possibly more safe now)
- Many improvements to documentation
Font::parent
now returns an optionHarfbuzzObject
becomes unsafe to implement
- Smart pointers to use
NonNull
- A new enum called TypedBuffer. It contains either a UnicodeBuffer or a GlyphBuffer. This makes reusing hb_buffer_t objects from foreign code possible.
- UnicodeBuffer methods to return its contents
from_bytes
function forFace
Font::set_funcs
adds necessarySend
andSync
bounds- UnicodeBuffer and GlyphBuffer no longer implement Clone (as they are mutable)
- Naming:
HbArc
toShared
andHbBox
toOwned
- internal representation of
Shared
andOwned
Shared::into_raw
andOwned::into_raw
into static methods- Various improvements to documentation
shape
becomes a free standing function (it was a method onUnicodeBuffer
)
Initial Release