SciNim/Unchained
A fully type safe, compile time only units library.
Thành tựu nổi bật
Những danh hiệu mới nhất của dự án
#3 Repository Của Tuần
🧪 Unchained: Đơn vị đo an toàn kiểu — chỉ ở thời gian biên dịch
Unchained là một thư viện đơn vị đo (units) hoàn toàn an toàn về kiểu, chỉ hoạt động ở thời gian biên dịch — không có bất kỳ chi phí nào khi chương trình thực thi.
Unchained là một thư viện đơn vị đo được viết bằng ngôn ngữ lập trình Nim, nơi mọi kiển tra kiểu (type safety) và chuyển đổi đơn vị đều được thực hiện hoàn toàn ở thời gian biên dịch. Không có bất kỳ thông tin nào về đơn vị đo nào tồn tại trong thời gian chạy, giúp chương trình nhẹ nhàng và nhanh chóng.
✨ Điểm nổi bật
- Type-safe units: Tất cả các phép toán với đơn vị đo đều được kiển tra an toàn ở thời gian biên dịch.
- Compile-time only: Không có chi phí thời gian chạy — mọi xử lý đều hoặn thành trước khi chương trình khởi động.
- Meta-programming: Sử dụng tính năng lập trình tạo thời gian biên dịch của Nim để xây dựng hệ thống đơn vị đo mạnh mẽ.
- Hỗ trợ chuẩn SI: Hỗ trợ đầy đủ các đơn vị đo hệ quy chuẩn quốc tế (SI) cùng với khả năng mở rộng tùy biến.
- Zero-runtime cost: Không có bất kỳ con trỏ, bảng tra cứu nào được tạo ra trong bộ nhớ khi chạy chương trình.
💡 Vì sao đáng chú ý
Unchained khác biệt từ các thư viện đơn vị đo truyền thống bằng cách dời toàn bộ logic kiển tra và chuyển đổi về thời gian biên dịch, nhờ vào khả năng lập trình tạo thời gian biên dịch (compile-time meta-programming) mạnh mẽ của Nim. Điều này giúp các nhà phát triển có thể sử dụng các đơn vị đo một cách an toàn mà không lo ngại về hiệu năng.
Dự án phù hợp với các hệ thống nhúng, tính toán khoa học hoặc bất kỳ ứng dụng nào yêu cầu độ chính xác cao về đơn vị đo nhưng không muốn chấp nhận chi phí thời gian chạy.
#NimLang #CompileTime #TypeSafety #Units #MetaProgramming #TiniX
Similar Projects
Discover other similar projects and AI models.
Nimbus: an Ethereum Execution Client for Resource-Restricted Devices
Alternative StdLib for Nim for NodeJS/JavaScript targets, hijacks NodeJS StdLib for Nim