Crate pango

source ·
Expand description

Rust Pango bindings

Rust bindings and wrappers for Pango, part of gtk-rs-core.

Pango 1.40 is the lowest supported version for the underlying library.

Minimum supported Rust version

Currently, the minimum supported Rust version is 1.63.0.



We recommend using crates from, as demonstrated here.

If you want to track the bleeding edge, use the git dependency instead:

pango = { git = "", package = "pango" }

Avoid mixing versioned and git crates like this:

pango = "0.13"
pango = { git = "", package = "pango" }

See Also


pango is available under the MIT License, please refer to it.


pub use ffi;
pub use glib;


Traits and essential types intended for blanket imports.


The Analysis structure stores information about the properties of a segment of text.
The AttrClass structure stores the type and operations for a particular type of attribute.
A AttrIterator is used to iterate through a AttrList.
A AttrList represents a list of attributes that apply to a section of text.
The Attribute structure represents the common portions of all attributes.
The Color structure is used to represent a color in an uncalibrated RGB color-space.
A Context stores global information used to control the itemization process.
A Coverage structure is a map from Unicode characters to CoverageLevel values.
A Font is used to represent a font in a rendering-system-independent manner.
A FontDescription describes a font in an implementation-independent manner.
A FontFace is used to represent a group of fonts with the same family, slant, weight, and width, but varying sizes.
A FontFamily is used to represent a family of related font faces.
A FontMap represents the set of fonts available for a particular rendering system.
The bits in a FontMask correspond to the set fields in a FontDescription.
A FontMetrics structure holds the overall metric information for a font.
A Fontset represents a set of Font to use when rendering text.
FontsetSimple is a implementation of the abstract Fontset base class as an array of fonts.
The GlyphGeometry structure contains width and positioning information for a single glyph.
A GlyphInfo structure represents a single glyph with positioning information and visual attributes.
A GlyphItem is a pair of a Item and the glyphs resulting from shaping the items text.
A GlyphItemIter is an iterator over the clusters in a GlyphItem.
A GlyphString is used to store strings of glyphs with geometry and visual attribute information.
The Item structure stores information about a segment of text.
The Language structure is used to represent a language.
A Layout structure represents an entire paragraph of text.
Flags that influence the behavior of Pango::Layout::deserialize().
A LayoutIter can be used to iterate over the visual extents of a Layout.
A LayoutLine represents one of the lines resulting from laying out a paragraph via Layout.
Flags that influence the behavior of Layout::serialize().
A Matrix specifies a transformation between user-space and device coordinates.
The Rectangle structure represents a rectangle.
Renderer is a base class for objects that can render text provided as GlyphString or Layout.
A ScriptIter is used to iterate through a string and identify ranges in different scripts.
Flags influencing the shaping process.
These flags affect how Pango treats characters that are normally not visible in the output.
A TabArray contains an array of tab stops.


Alignment describes how to align the lines of a Layout within the available space.
The AttrType distinguishes between different types of attributes.
An enumeration that affects baseline shifts between runs.
BidiType represents the bidirectional character type of a Unicode character.
CoverageLevel is used to indicate how well a font can represent a particular Unicode character for a particular script.
Direction represents a direction in the Unicode bidirectional algorithm.
EllipsizeMode describes what sort of ellipsization should be applied to text.
An enumeration that affects font sizes for superscript and subscript positioning and for (emulated) Small Caps.
Gravity represents the orientation of glyphs in a segment of text.
GravityHint defines how horizontal scripts should behave in a vertical context.
The Overline enumeration is used to specify whether text should be overlined, and if so, the type of line.
RenderPart defines different items to render for such purposes as setting colors.
The Script enumeration identifies different writing systems.
An enumeration specifying the width of the font relative to other designs within a family.
An enumeration specifying the various slant styles possible for a font.
TabAlign specifies where the text appears relative to the tab stop position.
An enumeration that affects how Pango treats characters during shaping.
The Underline enumeration is used to specify whether text should be underlined, and if so, the type of underlining.
An enumeration specifying capitalization variant of the font.
An enumeration specifying the weight (boldness) of a font.
WrapMode describes how to wrap the lines of a Layout to the desired width.


Whether the segment should be shifted to center around the baseline.
Whether this run holds ellipsized text.
Whether to add a hyphen at the end of the run during shaping.
Value for @start_index in Attribute that indicates the beginning of the text.
Value for @end_index in Attribute that indicates the end of the text.
A PangoGlyph value that indicates a zero-width empty glpyh.
A PangoGlyph value for invalid input.
Flag used in PangoGlyph to turn a gunichar value of a valid Unicode character into an unknown-character glyph for that gunichar.
The scale between dimensions used for Pango distances and device units.
The scale factor for one magnification step (1.2).
The scale factor for normal size (1.0).
The scale factor for one shrinking step (1 / 1.2).
The scale factor for three magnification steps (1.2 * 1.2 * 1.2).
The scale factor for three shrinking steps (1 / (1.2 * 1.2 * 1.2)).
The scale factor for two magnification steps (1.2 * 1.2).
The scale factor for two shrinking steps (1 / (1.2 * 1.2)).



Converts extents from Pango units to device units.
Searches a string the first character that has a strong direction, according to the Unicode bidirectional algorithm.
Locates a paragraph boundary in @text.
Checks if a character that should not be normally rendered.
Breaks a piece of text into segments with consistent directional level and font.
Like pango_itemize(), but with an explicitly specified base direction.
Finishes parsing markup.
Incrementally parses marked-up text to create a plain-text string and an attribute list.
Parses marked-up text to create a plain-text string and an attribute list.
Parses a font stretch.
Parses a font style.
Parses a font variant.
Parses a font weight.
Quantizes the thickness and position of a line to whole device pixels.
Convert the characters in @text into glyphs.
Determines the inherent direction of a character.
Converts a floating-point number to Pango units.
Converts a number in Pango units to floating-point.
Returns the encoded version of Pango available at run-time.
Checks that the Pango library in use is compatible with the given version.
Returns the version of Pango available at run-time.

Type Definitions