# pop-os/cosmic-text

Pure Rust multi-line text handling

Repository: https://github.com/pop-os/cosmic-text
Canonical: https://ross.abutalabs.com/products/cosmic-text
Homepage: https://pop-os.github.io/cosmic-text/cosmic_text/
Language: Rust
License: Apache-2.0
License Family: permissive
Last push: 2026-08-08T23:03:09+00:00

## Health v2 (maintenance only)
Score: 91/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 96, release rhythm 80, longevity 100
- inputs: {"age_days": 1415, "days_push": 25, "days_rel": 133, "gap_med": 6.0, "n_releases_24m": 15}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2133, forks 204 (observed 2026-08-28T04:06:17.312032+00:00)

## What it is
cosmic-text is a pure Rust library providing advanced multi-line text handling, including shaping (via HarfRust), font discovery and fallback, bidirectional layout, rasterization (via swash), and text editing abstractions. It supports Linux, macOS, and Windows with full features, plus partial no_std support.

## Use cases
- render text with proper shaping in a Rust GUI application
- handle bidirectional and RTL text layout
- implement font fallback for multilingual text rendering
- build a text editor widget with selection and editing support
- rasterize glyphs with ligatures and color emoji
- lay out and wrap multi-line text in a custom rendering engine
- support complex scripts like Arabic, Hindi, and Chinese in an app

## When to choose
- you need production-grade text shaping and layout in pure Rust
- your application must render multilingual or bidirectional text correctly
- you are building a GUI toolkit, editor, or game UI that needs text rendering
- you want per-character font fallback similar to browser behavior

## When to avoid
- you only need simple single-line text rendering without shaping
- you are not using Rust or a Rust-compatible FFI layer
- you need full no_std font loading or rendering, which is still incomplete
- you need copy/paste support, which is not yet implemented

## Facets
- artifact type: library
- maturity: active
- function: nlp, graphics, parser
- domain: text-editors, graphics, cross-platform
- platform: windows, rust, cross-platform, embedded
- tags: text-shaping, text-layout, font-fallback, bidirectional-text, rust-library, glyph-rasterization, text-editing, no-std, localization, linux, macos

## Member repositories
- pop-os/cosmic-text (main) score 91

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:17.312032+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:52:00.556831+00:00, confidence not recorded.
  - readme: https://github.com/pop-os/cosmic-text (fetched 2026-08-28T04:06:17.312032+00:00, sha 117593402266)
  - homepage: https://pop-os.github.io/cosmic-text/cosmic_text/ (fetched 2026-08-29T10:32:02.439713+00:00, sha 7d669b16d579)
  - registry_crates: https://crates.io/api/v1/crates/cosmic-text (fetched 2026-08-29T10:32:02.449520+00:00, sha 775d7a9178b4)
- Data as of 2026-08-30T08:39:29.467469+00:00.
