Rust-based Temporal: как ускорить внедрение в JS-движки 2026 года
-

Temporal наконец-то меняет работу с датами в JavaScript. Это новая API, которая заменяет проблемный Date и решает вечные боли с часовыми поясами, календарями и арифметикой времени. Разработчики ждали 9 лет, и в 2026 году она уже в Chrome, Firefox и других движках.
Rust-based Temporal через библиотеку temporal_rs ускоряет внедрение. Она написана на Rust, проходит 100% тестов и используется в V8, Boa и дальше. Это значит меньше багов, быстрее разработка и единый стандарт для всех JS-движков.
Что такое Temporal и почему Rust здесь ключевой
Temporal - это набор immutable типов для дат, времени и зон: PlainDate, ZonedDateTime, Instant. В отличие от Date, она не мутирует объекты, правильно обрабатывает DST и календари вроде коптского. Представьте: добавляете час к дате в Лондоне во время перехода на летнее время - Temporal просто пропустит несуществующий час и выдаст корректный результат.
Библиотека temporal_rs на Rust реализует весь API Temporal. Она построена на ICU4X для зон и календарей, проходит все тесты TC39. Google и Boa совместно её развили с 2024 года, и теперь она в Chrome 144, Firefox 139. Это ускоряет портирование в новые движки - пишете один раз на Rust, подключаете через FFI в C++ или Zig.
- Immutable операции:
zdt.add({ hours: 1 })возвращает новый объект, без мутаций. - Зоны и календари:
Temporal.Now.zonedDateTimeISO('Europe/Moscow')всегда точно. - Парсинг без неоднозначностей:
Temporal.PlainDate.from('2026-03-29')не сломается на локали.
Проблема Date Решение в Temporal Пример Мутация Immutable start.add({days:7})Неоднозначный парсинг Явные типы PlainDate.from('2026-02-13')DST-ошибки Зонная обработка 2026-03-29T00:30+00:00[Europe/London]->+01:00Как temporal_rs ускоряет разработку JS-движков
Temporal_rs - это не просто порт API, а полноценная Rust-библиотека для дат. Она embed’ится в движки вроде V8 и Boa, экономя месяцы кода. Разработчики из Google, Boa и Университета Бергена довели её до 100% конформности к тестам. В 2025 она уже питала прототипы, а в 2026 - в продакшене Chrome и Edge.
Преимущество Rust: безопасность памяти, скорость и кросс-платформенность. Движкам не нужно дублировать логику ICU - temporal_rs её оборачивает. Для новых движков это плагин: компилируете, линковали - и Temporal работает. Пример: Boa использует её нативно и для JS.
- Быстрое тестирование: 100% тестов TC39 пройдено, баги фиксятся централизованно.
- FFI-интеграция: Работает с C++, Zig - идеально для V8, SpiderMonkey.
- Нативное использование: В Rust-коде
let today = Temporal::Now::zoned_date_time_iso("Europe/London").
Ключевой плюс: temporal_rs делает Temporal engine-agnostic. Пока Safari догоняет, другие движки уже впереди.
Поддержка в движках и переход в 2026
К 2026 Temporal в Stage 4 TC39 и входит в ES2026. Chrome 144 (январь), Edge 144, Firefox 139 (май 2025) - полная поддержка. TypeScript 6.0 beta уже компилирует, Node.js 26 на подходе. Safari в Technology Preview, но полная поддержка ожидается скоро.
Temporal_rs ускорила это: вместо самостоятельной имплементации движки берут готовое. Пример кода из реала:
const zdt = Temporal.ZonedDateTime.from("2026-03-29T00:30:00+00:00[Europe/London]"); const plus1h = zdt.add({ hours: 1 }); console.log(plus1h.toString()); // 2026-03-29T02:30:00+01:00[Europe/London]Это работает везде, где temporal_rs подключена. Для фронта и бэка - единый API без библиотек вроде Moment.js.
Движок Статус Temporal temporal_rs роль Chrome 144 Полная Питает V8 Firefox 139 Полная Интеграция Safari Частичная Планируется Node.js 26 Скоро TBC Temporal вне браузера - горизонты Rust
Temporal_rs открывает двери за пределы JS. В Rust она - нативная библиотека для серверов, CLI, embedded. Конвертируйте JS Temporal в Rust:
today.to_plain_date()с коптским календарем. Это полезно для Node.js, Deno, Bun - ускоряет их Temporal.Интеграция простая: добавьте в Cargo.toml, вызывайте API. Тесты toLocaleString почти 100%, edge-кейсы с DST покрыты. Для мобильной разработки (React Native) или игр - точное время без хаков.
- Серверы: Арифметика дат в API без багов.
- CLI: Парсинг аргументов с зонами.
- Игры: Синхронизация событий по UTC+локаль.
Нюанс: Пока нет кастомных форматов строк - используйте toLocaleString или date-fns как мостик.
Взгляд на Temporal через год внедрения
Temporal и temporal_rs уже меняют JS-экосистему, но Safari и полная Node.js - следующий шаг. Стоит присмотреться к Rust-библиотекам для других стандартов TC39. Это ускорит унификацию движков и избавит от legacy-Date навсегда.
Впереди тонкая настройка календарей и производительность на слабом железе. Если пишете движок или полифилл - temporal_rs сэкономит время прямо сейчас.
- Immutable операции:
Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2024 - 2026 ExLends, Inc. Все права защищены.