Джарред Самнер (Jarred Sumner), создатель и основной разработчик серверной JavaScript-платформы Bun, признал успешным эксперимент по переписыванию проекта с языка Zig и Rust при помощи AI-ассистента Claude Code, и принял решение о переводе Bun на язык Rust. Переписанный вариант на языке Rust уже принят в основной репозиторий проекта, а код на языке Zig намечен к удалению. Также автор Bun объявил о найме сотрудников для поддержки Bun, имеющих более 5 лет опыта разработки на языках C/C++ и Rust.
На данный момент на Rust реализован прямой порт с языка Zig, который включает множество блоков unsafe кода, использует ту же архитектуру, те же структуры данных и прежние внешние библиотеки. Отмечается, что порт на Rust успешно прошёл проверку существующим тестовым набором на всех платформах. Попутно было устранено несколько утечек памяти и сбоев в тестах.
После сборки версии на Rust исполняемый файл получился на 3-8 МБ меньше, чем при сборке версии на Zig. В тестах производительности версия на Rust оказалась либо быстрее, либо на том же уровне. При этом по мнению Джарред самым важным преимуществом варианта на Rust стала возможность отлавливания и предотвращения ошибок при работе с памятью, диагностика которых последние годы отнимала у разработчиков Bun уйму времени.
В качестве причины переписывания на Rust ранее отмечалось желание устранить проблемы в Bun, вызванные утечками памяти, наличие разногласий с авторами Zig в плане применения AI для написания кода и неприемлемая для крупных проектов политика Zig в отношении принятия в язык изменений, нарушающих совместимость.
ಬನ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಅನ್ನು Node.js ಮತ್ತು Deno ಗಳಿಗೆ ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯ ಪರ್ಯಾಯವಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗುತ್ತಿದೆ. ಈ ಯೋಜನೆಯನ್ನು Node.js ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಹೊಂದಾಣಿಕೆಯನ್ನು ಗಮನದಲ್ಲಿಟ್ಟುಕೊಂಡು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗುತ್ತಿದೆ ಮತ್ತು ಹೆಚ್ಚಿನ Node.js API ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಈ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಟೈಪ್ಸ್ಕ್ರಿಪ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಚಲಾಯಿಸಲು ಪರಿಕರಗಳ ಗುಂಪನ್ನು ಒಳಗೊಂಡಿದೆ, ಜೊತೆಗೆ ಬ್ರೌಸರ್ ಇಲ್ಲದೆ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ರನ್ಟೈಮ್, ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ (NPM ನೊಂದಿಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ), ಪರೀಕ್ಷಾ ಪರಿಕರಗಳು, ಸ್ವಯಂ-ಒಳಗೊಂಡಿರುವ ಪ್ಯಾಕೇಜ್ ಬಿಲ್ಡರ್ ಮತ್ತು C ನಲ್ಲಿ ಬರೆಯಲಾದ ಎಂಬೆಡಿಂಗ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳಿಗೆ ಲೇಯರ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ. ಕಾರ್ಯಕ್ಷಮತೆಯ ವಿಷಯದಲ್ಲಿ, ಬನ್ ಡೆನೊ ಮತ್ತು ನೋಡ್.ಜೆಎಸ್ಗಳನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಮೀರಿಸುತ್ತದೆ (ರಿಯಾಕ್ಟ್ ಫ್ರೇಮ್ವರ್ಕ್ ಅನ್ನು ಆಧರಿಸಿದ ಪರೀಕ್ಷೆಗಳಲ್ಲಿ, ಬನ್ ಡೆನೊವನ್ನು 2 ಅಂಶದಿಂದ ಮತ್ತು ನೋಡ್.ಜೆಎಸ್ ಅನ್ನು ಸುಮಾರು 5 ಅಂಶದಿಂದ ಮೀರಿಸುತ್ತದೆ). ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ಕೋರ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಎಂಜಿನ್ ಮತ್ತು ವೆಬ್ಕಿಟ್ ಘಟಕಗಳು ಹೆಚ್ಚುವರಿ ಪ್ಯಾಚ್ಗಳೊಂದಿಗೆ ಬೆಂಬಲಿಸುತ್ತವೆ.
ಮೂಲ: opennet.ru
