Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. JavaScript
  5. Kiesel и Yavashark: Rust-реализации Temporal для ускорения JS-движков

Kiesel и Yavashark: Rust-реализации Temporal для ускорения JS-движков

Запланировано Прикреплена Закрыта Перенесена JavaScript
temporalrustyavashark
1 Сообщения 1 Постеры 1 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • hannadevH Не в сети
    hannadevH Не в сети
    hannadev
    написал отредактировано
    #1

    Обложка: Kiesel и Yavashark: Rust-реализации Temporal для ускорения JavaScript-движков

    Rust-реализации Temporal в проектах Kiesel и Yavashark меняют подход к обработке дат во времени в JavaScript-движках. Эти движки, написанные на Rust, интегрируют библиотеку temporal_rs для нативной поддержки API Temporal. Это ускоряет выполнение кода и упрощает разработку без лишних трансформаций.

    Temporal - это стандартный API для работы с датами, календарями и часовыми поясами в ECMAScript. Он решает проблемы неточностей в Date и предлагает более 200 методов для точных вычислений. Интеграция в Rust-движки как Kiesel и Yavashark дает производительность на уровне нативного кода и помогает браузерам делить затраты на разработку новых фич.

    Что такое Temporal и зачем его реализуют на Rust

    Temporal - это proposal на стадии 3 в TC39, который вводит современный API для дат и времени. Он учитывает календари, часовые пояса и сложные сценарии, которых не хватает в старом объекте Date. Библиотека temporal_rs на Rust обеспечивает высокую конформность с более чем 4000 тестами и работает как в нативном Rust, так и в JS-движках.

    Разработка temporal_rs шла с помощью студентов из Университета Бергена, что ускорило добавление методов и поддержку time zone data на базе ICU4X. Это позволяет движкам вроде Kiesel и Yavashark встраивать готовую реализацию без дублирования усилий. Результат - меньшие баги и совместимость с будущим стандартом Stage 4 в 2026 году. Такие библиотеки делают разработку устойчивой, особенно для массивных фич вроде Temporal.

    Вот ключевые особенности temporal_rs:

    • Высокая конформность: Проходит тысячи тестов ECMAScript.
    • Поддержка time zones: Интеграция с ICU4X и tzif-данными.
    • Гибкость: Работает в нативном Rust и embed в JS-движки.
    • Partial объекты: Лучше представляют JS property bags.
    Аспект Date (старый API) Temporal
    Точность Часто неточная Полная, с календарями
    Методы Мало 200+
    Часовые пояса Базовая Полная поддержка
    Rust-интеграция Нет temporal_rs

    Kiesel: Интеграция Temporal в Rust-движок

    Kiesel - это JS-движок на Rust, который использует temporal_rs для поддержки Temporal API. Это позволяет запускать сложные операции с датами нативно, без overhead от интерпретатора. Интеграция идет параллельно с V8 и Chromium, где temporal_rs попадет в v144 без флагов.

    Такая реализация снижает нагрузку на разработчиков движков, так как код Temporal общий и протестирован. Kiesel выигрывает в скорости за счет Rust и Cranelift для JIT/AOT-компиляции. Это особенно полезно для приложений с большим объемом датных вычислений, как в финтехе или логистике.

    Преимущества для Kiesel:

    1. Общая библиотека: Делит код с Boa и V8.
    2. Производительность: Нативная скорость Rust.
    3. Масштабируемость: Легко добавлять новые фичи.

    Важно: Пока proposal на Stage 3, версия temporal_rs остается 0.1 для фикса багов.

    Yavashark: TypeScript-first движок с Temporal

    Yavashark - движок на Rust, ориентированный на TypeScript, где код запускается нативно без транспиляции в JS. Он интегрирует temporal_rs для полной поддержки Temporal и планирует TS-Bytecode-Interpreter. Сейчас в работе JS-Tree-Walk и Bytecode интерпретаторы.

    Это упрощает разработку TS-проектов: пишешь на TS, запускаешь быстро. Yavashark планирует JIT и AOT на Cranelift, что даст преимущество в скорости над V8 или SpiderMonkey. Temporal здесь усиливает фокус на современных фичах ECMAScript.

    Планы развития Yavashark:

    • JS/TS Bytecode Interpreter (stack/register based).
    • TS-JIT Compiler на Cranelift.
    • JS-JIT и TS-AOT.
    Компонент Статус Польза
    JS-Tree-Walk In Progress Базовая интерпретация
    Bytecode Interpreter In Progress Быстрее tree-walk
    TS-JIT Планируется Нативная оптимизация

    Перспективы Rust в JS-движках

    Rust входит в V8 через temporal_rs - это первый случай, упрощающий обмен библиотеками. Kiesel и Yavashark показывают, как такие движки конкурируют с гигантами вроде Chrome. Дальше ждем полной Stage 4 и интеграции в большее число проектов.

    Эксперименты с WASM и pluggable time zones обсуждаются в сообществе. Это оставляет пространство для кастомизации, но базовая реализация уже мощная. Стоит следить, как temporal_rs повлияет на производительность реальных приложений.

    1 ответ Последний ответ
    0

    Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.

    Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.

    С вашими комментариями этот пост мог бы стать ещё лучше 💗

    Зарегистрироваться Войти

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com
    • Наш чат
    • Наш ТГ канал

    © 2024 - 2026 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы