This reduces compilation time by removing a dependency on syn and other dependencies of ouroboros_macros. In addition it saves a lot of unused codegened methods. On my laptop (2 core + HT) this reduces compilation time by ~20%. On a many core system this doesn't help much though as the critical path path consists of both ttf-parser -> rustybuzz and swash. Further gains will likely need to be made by reducing compilation time for these crates. Benchmark 1: cargo build Time (mean ± σ): 25.150 s ± 0.167 s [User: 84.414 s, System: 7.335 s] Range (min … max): 24.909 s … 25.444 s 10 runs Benchmark 1: cargo build Time (mean ± σ): 19.819 s ± 0.226 s [User: 67.754 s, System: 5.592 s] Range (min … max): 19.492 s … 20.140 s 10 runs The code is based on an expansion of the ouroboros macro, cleaned up to remove all unused methods and inline most functions that are only called once.
48 lines
1.1 KiB
TOML
48 lines
1.1 KiB
TOML
[package]
|
|
name = "cosmic-text"
|
|
description = "Pure Rust multi-line text handling"
|
|
version = "0.8.0"
|
|
authors = ["Jeremy Soller <jeremy@system76.com>"]
|
|
edition = "2021"
|
|
license = "MIT OR Apache-2.0"
|
|
documentation = "https://docs.rs/cosmic-text/latest/cosmic_text/"
|
|
repository = "https://github.com/pop-os/cosmic-text"
|
|
|
|
[dependencies]
|
|
fontdb = { version = "0.13.0", default-features = false }
|
|
libm = "0.2.6"
|
|
log = "0.4.17"
|
|
aliasable = "0.1.3"
|
|
rustybuzz = { version = "0.7.0", default-features = false, features = ["libm"] }
|
|
swash = { version = "0.1.6", optional = true }
|
|
syntect = { version = "5.0.0", optional = true }
|
|
sys-locale = { version = "0.3.0", optional = true }
|
|
unicode-linebreak = "0.1.4"
|
|
unicode-script = "0.5.5"
|
|
unicode-segmentation = "1.10.0"
|
|
rangemap = "1.2.0"
|
|
|
|
[dependencies.unicode-bidi]
|
|
version = "0.3.8"
|
|
default-features = false
|
|
features = ["hardcoded-data"]
|
|
|
|
[features]
|
|
default = ["std", "swash"]
|
|
no_std = [
|
|
"rustybuzz/libm",
|
|
]
|
|
std = [
|
|
"fontdb/memmap",
|
|
"fontdb/std",
|
|
"rustybuzz/std",
|
|
"sys-locale",
|
|
"unicode-bidi/std",
|
|
]
|
|
vi = ["syntect"]
|
|
wasm-web = ["sys-locale?/js"]
|
|
|
|
[workspace]
|
|
members = [
|
|
"examples/*",
|
|
]
|