#syllable #hyphenation #language #words #pattern #byte #binary-data

no-std hypher

hypher 将单词分割为音节

6 个版本

0.1.5 2024 年 3 月 6 日
0.1.4 2023 年 10 月 8 日
0.1.3 2023 年 9 月 4 日
0.1.2 2023 年 8 月 3 日
0.1.0 2022 年 3 月 8 日

#139文本处理

Download history 2094/week @ 2024-03-15 1197/week @ 2024-03-22 1025/week @ 2024-03-29 935/week @ 2024-04-05 866/week @ 2024-04-12 762/week @ 2024-04-19 974/week @ 2024-04-26 772/week @ 2024-05-03 992/week @ 2024-05-10 1771/week @ 2024-05-17 1171/week @ 2024-05-24 887/week @ 2024-05-31 1255/week @ 2024-06-07 1222/week @ 2024-06-14 1093/week @ 2024-06-21 663/week @ 2024-06-28

4,368 每月下载量
26 个 crates 中使用 (直接使用 2 个)

MIT/Apache

1MB
657

hypher

Crates.io Documentation

hypher 将单词分割为音节。

[dependencies]
hypher = "0.1"

功能

  • 全部包含:连字符模式在构建时嵌入到二进制文件中,以高效编码的有限自动机形式。
  • 零加载时间:连字符自动机直接在嵌入的二进制数据上运行,无需前置解码。
  • 除非在分割非常长的单词(> 41 字节)时,否则不进行分配。您可以禁用 alloc 功能,但此时过长单词将导致 panic。
  • 支持多种语言。
  • 无不安全代码,无依赖,无 std。

示例

use hypher::{hyphenate, Lang};

let syllables = hyphenate("extensive", Lang::English);
assert_eq!(syllables.join("-"), "ex-ten-sive");

语言

默认情况下,此 crate 支持 30 多种语言的连字符处理。嵌入所有这些语言的自动机将增加 ~1.1 MiB 到您的二进制文件中。或者,您可以禁用所有语言的支持并手动选择要添加的语言

[dependencies]
hypher = { version = "0.1", default-features = false, features = ["english", "greek"] }

每个添加的语言单独贡献

语言 空间
南非荷兰语 60 KiB
阿尔巴尼亚语 1.4 KiB
白俄罗斯语 3.9 KiB
保加利亚语 13 KiB
加泰罗尼亚语 1.7 KiB
克罗地亚语 2.0 KiB
捷克语 40 KiB
丹麦语 5.7 KiB
荷兰语 63 KiB
英语 27 KiB
爱沙尼亚语 19 KiB
芬兰语 1.3 KiB
法语 6.9 KiB
格鲁吉亚语 11 KiB
德语 192 KiB
希腊语 2.0 KiB
匈牙利语 346 KiB
冰岛语 21 KiB
意大利语 1.6 KiB
库尔曼吉语 1.4 KiB
拉丁语 1003 B
立陶宛语 6.5 KiB
蒙古语 4.9 KiB
挪威语 153 KiB
波兰语 16 KiB
葡萄牙语 343 B
俄语 33 KiB
塞尔维亚语 13 KiB
斯洛伐克语 13 KiB
斯洛文尼亚语 5.5 KiB
西班牙语 14 KiB
瑞典语 24 KiB
土耳其语 526 B
土库曼语 1.4 KiB
乌克兰语 21 KiB

基准测试

任务 hypher hyphenation
分割 extensive(英语) 356ns 698ns
分割 διαμερίσματα(希腊语) 503ns 1121ns
加载英文模式 0us 151us
加载希腊模式 0us 0.826us

基准测试在ARM、Apple M1上执行。

许可证

此crate的代码在MIT和Apache 2.0许可证下双重许可。

位于patterns/中的文件受其中所述的个别许可证约束。模式在构建时进行处理,然后嵌入(即静态链接)到您的二进制文件中。然而,hypher仅包含在宽松许可证下可用的模式。模式许可证包括LPPL、MPL、MIT、BSD-3。

无运行时依赖

功能