Yekdast (یکدست) yekdast-rs
یک کتابخانه سریع، قابل تنظیم و مدرن به زبان Rust برای یکسانسازی و پیشپردازش متن فارسی.
Yekdast ابزاری قدرتمند برای تمیز کردن دادههای متنی فارسی است که آنها را برای مراحل بعدی مانند جستجو، تحلیل یا نمایش در برنامهها آماده میکند.
## چرا Yekdast؟
- 🚀 فوقسریع و بدون سربار (Zero-Cost): در نسخه ۰.۲.۰ تمام
HashMapها حذف شده و از ساختارهایmatchو[char; 10]برای پردازش استفاده شده که سرعت اجرای پردازشها را به شکل خیرهکنندهای افزایش داده است. - 🔧 کاملاً قابل تنظیم: شما میتوانید دیکشنریهای دلخواه خود را برای مدیریت کلمات مرکب، اصلاح کلمات محاورهای و قوانین جایگزینی سفارشی ارائه دهید.
- 🧠 هوشمند: قابلیت مدیریت هوشمند نیمفاصله (ZWNJ) برای پیشوندها، پسوندها و کلمات مرکب.
- 🛡️ امن: بخشهای حساس متن مانند URL، ایمیل، کد و تگهای HTML به صورت خودکار محافظت میشوند.
- ✨ جامع: مجموعهای کامل از قابلیتها شامل یکسانسازی حروف، ارقام، علائم نگارشی و فاصلهها.
- 🦀 مدرن (Rust 1.80+): با استفاده از ویژگیهای مدرن و بومی Rust (مانند
std::sync::LazyLock)، وابستگیهای غیرضروری حذف شده است.
## نصب
برای استفاده از Yekdast در پروژه خود، کافی است خط زیر را به فایل Cargo.toml اضافه کنید:
[]
= "0.2.0"
توجه: این کتابخانه به نسخه Rust 1.80 یا بالاتر نیاز دارد.
## شروع سریع
استفاده از کتابخانه با تنظیمات پیشفرض بسیار ساده است.
use ;
## استفاده پیشرفته و گزینهها
قدرت واقعی Yekdast در قابلیت تنظیم آن است. شما میتوانید تمام جنبههای نرمالسازی را کنترل کنید.
use ;
use HashMap;
## لیست کامل قابلیتها
- یکسانسازی حروف عربی (ي, ك) به فارسی (ی, ک)
- نرمالسازی و تبدیل ارقام (فارسی، عربی، لاتین)
- اصلاح علائم نگارشی (کاما، نقطه ویرگول، علامت سوال)
- مدیریت هوشمند نیمفاصله (ZWNJ) برای پیشوندها (
می/نمی)، پسوندها (ها/تر/ترین) و کلمات مرکب سفارشی - قابلیت تعریف دیکشنری سفارشی برای تبدیل کلمات محاورهای به رسمی
- قابلیت تعریف قوانین جایگزینی سفارشی
- پاکسازی فاصلهگذاریهای اضافه
- نرمالسازی کاراکترهای خط جدید (Newlines)
- حذف اعراب و کشیدگی (تطویل)
- محافظت خودکار از URL, ایمیل, کد و تگهای HTML
- پشتیبانی از فرمتهای مختلف نرمالسازی یونیکد (NFC, NFKC)
## مشارکت
مشارکت در این پروژه مورد استقبال قرار میگیرد. لطفاً برای گزارش باگ یا ارائه پیشنهاد، یک Issue جدید باز کنید یا یک Pull Request ارسال نمایید.
## مجوز
این پروژه تحت مجوز MIT منتشر شده است.