Skir: یه زبان اسکیما برای همه زبانهای برنامهنویسی
خلاصهٔ کاملتر
Skir یه زبان اسکیماست که میخواد جایگزین سادهتری برای Protobuf باشه. ایده اصلی اینه که انواع داده، ثابتها و تعریف APIها رو یهبار در یه فایل .skir بنویسی و بعد کد آماده و type-safe برای ۱۲ زبان مختلف تولید کنی — از TypeScript و Python گرفته تا Go، Rust، Swift، Kotlin و Gleam.
کامپایلر Skir از طریق npx قابل اجراست و نیازی به نصب جداگانه نداره. تنظیمات پروژه هم از یه فایل YAML واحد مدیریت میشه. یه ویژگی مهم watch mode هست که با هر تغییر در فایل اسکیما، خروجی کد رو بلافاصله بهروز میکنه.
یه نمونه ساده از اسکیما Skir اینه:
struct Shape {
points: [Point];
label: string;
}
struct Point {
x: int32;
y: int32;
label: string;
}
method IsConvex(Shape): bool = 412938;این تعریف بهطور خودکار کلاسها و متدهای متناظر در زبان هدف تولید میکنه. اشیاء تولیدشده immutable (تغییرناپذیر) هستن و همه فیلدها در زمان ساخت الزامیاند — این یعنی خطاهای رایج runtime کمتری خواهی داشت.
SkirRPC یه پروتکل HTTP سبکوزنه که ارتباط type-safe بین سرویسها یا frontend و backend رو ممکن میکنه. کلاینت و سرور از همون تعریفهای متد تولیدشده استفاده میکنن، پس اگه قرارداد API تغییر کنه، خطا قبل از runtime مشخص میشه. هر سرویس SkirRPC یه اپ Studio داخلی هم داره که میشه باهاش متدها رو مستقیم مرور و تست کرد.
Skir چند ویژگی جالب دیگه هم داره. میتونی اسکیما رو از ریپازیتوریهای GitHub مستقیم ایمپورت کنی تا ساختارهای داده مشترک رو بین پروژهها به اشتراک بذاری. سریالسازی هم چند فرمت داره: JSON فشرده برای APIها، JSON خوانا برای دیباگ، و باینری برای کارایی بالا. sum type روی enum هم برای مدلسازی polymorphism پشتیبانی میشه. یه اکستنشن VS Code با LSP کامل هم برای autocomplete و اعتبارسنجی real-time وجود داره.
نکات کلیدی:
- یهبار اسکیما بنویس، کد type-safe برای ۱۲ زبان بگیر
- watch mode کد رو با هر تغییر در اسکیما بهروز میکنه
- SkirRPC ارتباط type-safe بین سرویسها با Studio تست داخلی
- پشتیبانی از سریالسازی JSON (دو حالت) و باینری
- ایمپورت مستقیم اسکیما از GitHub
- کد تولیدشده immutable و با فیلدهای اجباری در زمان ساخت
- اکستنشن VS Code با LSP کامل




