5 phút đọc
Trong cộng đồng phát triển phần mềm toán học và khoa học dữ liệu, Wolfram Language (sức mạnh đằng sau phần mềm Mathematica danh tiếng) luôn được đánh giá cao nhờ khả năng tính toán ký hiệu và xử lý dữ liệu mạnh mẽ. Tuy nhiên, việc phụ thuộc vào bản quyền thương mại và độ trễ khi khởi động kernel luôn là rào cản lớn đối với các nhà phát triển muốn tích hợp ngôn ngữ này vào các kịch bản dòng lệnh (CLI scripting). Để giải quyết bài toán đó, dự án mã nguồn mở Woxi (ad-si/Woxi) đã ra đời như một nỗ lực tái triển khai Wolfram Language bằng ngôn ngữ lập trình Rust.
Với việc sử dụng Rust làm ngôn ngữ cốt lõi, dự án hiện đã thu hút được 921 stars và 32 forks trên GitHub (tính đến bản cập nhật ngày 23/09/2026). Woxi hướng tới việc cung cấp một trình thông dịch mã nguồn mở, hoạt động độc lập và nhanh chóng hơn so với WolframScript truyền thống.
Trình thông dịch tối ưu tốc độ và loại bỏ rào cản bản quyền
Mục tiêu ban đầu của Woxi là triển khai một tập hợp con (subset) của Wolfram Language để phục vụ cho các tác vụ CLI scripting và môi trường notebook. Điểm vượt trội lớn nhất của Woxi so với WolframScript chính là tốc độ thực thi. Công cụ này hoạt động nhanh hơn do loại bỏ hoàn toàn các bước trung gian liên quan đến việc khởi động một kernel Mathematica chính thức và quy trình xác thực bản quyền (license verification) đi kèm.
Mặc dù là một bản tái triển khai độc lập, nhà phát triển Woxi cam kết duy trì tính chính xác thông qua hệ thống kiểm thử nghiêm ngặt. Trong thư mục thử nghiệm CLI của dự án, tất cả các lệnh được hỗ trợ đều phải vượt qua các bài kiểm tra song song trên cả Woxi và WolframScript để đảm bảo kết quả đầu ra hoàn toàn trùng khớp.
Khả năng tương thích hệ sinh thái: Từ Jupyter Notebook đến WebAssembly
Một trong những điểm sáng của Woxi là khả năng tích hợp sâu rộng vào các công cụ làm việc hiện đại của các nhà khoa học dữ liệu:
- Hỗ trợ Jupyter Notebook toàn diện: Woxi cung cấp khả năng hiển thị đồ họa trực tiếp trong môi trường notebook. Dự án thậm chí còn cung cấp một phiên bản JupyterLite chạy trực tiếp trên trình duyệt web của người dùng mà không cần gửi bất kỳ dữ liệu nào lên môi trường đám mây bên thứ ba.
- Tích hợp WebAssembly (Wasm): Đối với các nhà phát triển web, Woxi có sẵn trên nền tảng npm với tên gọi
woxi-wasm, cung cấp các liên kết JavaScript (bindings) để chạy trực tiếp trên trình duyệt hoặc môi trường Node.js. - Hỗ trợ Python: Woxi cũng được phân phối trên PyPI dưới dạng gói Python (
woxi-py) đi kèm với các bản dựng sẵn (pre-built wheels) giúp việc tích hợp vào các dự án Python hiện tại trở nên dễ dàng.
Khởi chạy REPL và tích hợp vào trình soạn thảo mã nguồn
Nhà phát triển có thể tương tác trực tiếp với Woxi thông qua giao diện dòng lệnh (CLI) hoặc kích hoạt chế độ REPL tương tác. Trình REPL này hỗ trợ lưu giữ các định nghĩa biến, hàm và lịch sử truy xuất thông qua ký tự % hoặc Out[] tương tự như trên Mathematica gốc. Ngoài ra, việc cài đặt Jupyter kernel cho Woxi cũng rất đơn giản nhờ bộ cài đặt tích hợp sẵn trong tệp thực thi, cho phép đăng ký trực tiếp vào thư mục kernel của Jupyter.
Để hỗ trợ viết mã hiệu quả hơn, Woxi tích hợp sẵn một máy chủ LSP (Language Server Protocol) chuyên dụng cho Wolfram Language qua giao thức stdin/stdout. Khi cấu hình trình soạn thảo (ví dụ như Neovim) chạy lệnh woxi lsp, nhà phát triển sẽ nhận được các tính năng hỗ trợ như tự động hoàn thành mã (autocomplete), kiểm tra lỗi cú pháp và định dạng cho các định dạng tệp tin phổ biến bao gồm .wl, .wls, .m và .nb.
Những điều còn chưa biết về dự án
Mặc dù Woxi mang lại những hứa hẹn lớn về mặt tốc độ và tính mở, người dùng cũng cần lưu ý một số điểm chưa được làm rõ hoặc còn hạn chế ở thời điểm hiện tại. Do dự án chỉ tập trung vào một tập hợp con (subset) của Wolfram Language, danh sách các hàm toán học và xử lý chưa được triển khai đầy đủ vẫn đang là một ẩn số đối với những người dùng mới (người dùng buộc phải tra cứu thủ công tệp dữ liệu functions.csv trong repository để biết trạng thái thực tế của từng hàm cụ thể). Bên cạnh đó, hiệu năng thực tế của Woxi khi đối mặt với các tác vụ tính toán ký hiệu phức tạp hoặc các phép toán ma trận lớn so với kernel gốc của Wolfram vẫn chưa được công bố qua các biểu đồ benchmark chi tiết.
Nguồn tham khảo: Xem bài gốc