<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Kiesel и Yavashark: Rust-реализации Temporal для ускорения JS-движков]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/58/ee/85/1773770235715-generated_1773770213347-resized.webp" alt="Обложка: Kiesel и Yavashark: Rust-реализации Temporal для ускорения JavaScript-движков" class=" img-fluid img-markdown" /></p>
<p dir="auto">Rust-реализации Temporal в проектах Kiesel и Yavashark меняют подход к обработке дат во времени в JavaScript-движках. Эти движки, написанные на Rust, интегрируют библиотеку temporal_rs для нативной поддержки API Temporal. Это ускоряет выполнение кода и упрощает разработку без лишних трансформаций.</p>
<p dir="auto">Temporal - это стандартный API для работы с датами, календарями и часовыми поясами в ECMAScript. Он решает проблемы неточностей в Date и предлагает более 200 методов для точных вычислений. Интеграция в Rust-движки как Kiesel и Yavashark дает производительность на уровне нативного кода и помогает браузерам делить затраты на разработку новых фич.</p>
<h2>Что такое Temporal и зачем его реализуют на Rust</h2>
<p dir="auto">Temporal - это proposal на стадии 3 в TC39, который вводит современный API для дат и времени. Он учитывает календари, часовые пояса и сложные сценарии, которых не хватает в старом объекте Date. Библиотека temporal_rs на Rust обеспечивает высокую конформность с более чем 4000 тестами и работает как в нативном Rust, так и в JS-движках.</p>
<p dir="auto">Разработка temporal_rs шла с помощью студентов из Университета Бергена, что ускорило добавление методов и поддержку time zone data на базе ICU4X. Это позволяет движкам вроде Kiesel и Yavashark встраивать готовую реализацию без дублирования усилий. Результат - меньшие баги и совместимость с будущим стандартом Stage 4 в 2026 году. Такие библиотеки делают разработку устойчивой, особенно для массивных фич вроде Temporal.</p>
<p dir="auto">Вот ключевые особенности temporal_rs:</p>
<ul>
<li><strong>Высокая конформность</strong>: Проходит тысячи тестов ECMAScript.</li>
<li><strong>Поддержка time zones</strong>: Интеграция с ICU4X и tzif-данными.</li>
<li><strong>Гибкость</strong>: Работает в нативном Rust и embed в JS-движки.</li>
<li><em>Partial объекты</em>: Лучше представляют JS property bags.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Аспект</th>
<th>Date (старый API)</th>
<th>Temporal</th>
</tr>
</thead>
<tbody>
<tr>
<td>Точность</td>
<td>Часто неточная</td>
<td>Полная, с календарями</td>
</tr>
<tr>
<td>Методы</td>
<td>Мало</td>
<td>200+</td>
</tr>
<tr>
<td>Часовые пояса</td>
<td>Базовая</td>
<td>Полная поддержка</td>
</tr>
<tr>
<td>Rust-интеграция</td>
<td>Нет</td>
<td>temporal_rs</td>
</tr>
</tbody>
</table>
<h2>Kiesel: Интеграция Temporal в Rust-движок</h2>
<p dir="auto">Kiesel - это JS-движок на Rust, который использует temporal_rs для поддержки Temporal API. Это позволяет запускать сложные операции с датами нативно, без overhead от интерпретатора. Интеграция идет параллельно с V8 и Chromium, где temporal_rs попадет в v144 без флагов.</p>
<p dir="auto">Такая реализация снижает нагрузку на разработчиков движков, так как код Temporal общий и протестирован. Kiesel выигрывает в скорости за счет Rust и Cranelift для JIT/AOT-компиляции. Это особенно полезно для приложений с большим объемом датных вычислений, как в финтехе или логистике.</p>
<p dir="auto">Преимущества для Kiesel:</p>
<ol>
<li><strong>Общая библиотека</strong>: Делит код с Boa и V8.</li>
<li><strong>Производительность</strong>: Нативная скорость Rust.</li>
<li><strong>Масштабируемость</strong>: Легко добавлять новые фичи.</li>
</ol>
<p dir="auto"><em>Важно</em>: Пока proposal на Stage 3, версия temporal_rs остается 0.1 для фикса багов.</p>
<h2>Yavashark: TypeScript-first движок с Temporal</h2>
<p dir="auto">Yavashark - движок на Rust, ориентированный на TypeScript, где код запускается нативно без транспиляции в JS. Он интегрирует temporal_rs для полной поддержки Temporal и планирует TS-Bytecode-Interpreter. Сейчас в работе JS-Tree-Walk и Bytecode интерпретаторы.</p>
<p dir="auto">Это упрощает разработку TS-проектов: пишешь на TS, запускаешь быстро. Yavashark планирует JIT и AOT на Cranelift, что даст преимущество в скорости над V8 или SpiderMonkey. Temporal здесь усиливает фокус на современных фичах ECMAScript.</p>
<p dir="auto">Планы развития Yavashark:</p>
<ul>
<li>JS/TS Bytecode Interpreter (stack/register based).</li>
<li><strong>TS-JIT Compiler</strong> на Cranelift.</li>
<li>JS-JIT и TS-AOT.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Компонент</th>
<th>Статус</th>
<th>Польза</th>
</tr>
</thead>
<tbody>
<tr>
<td>JS-Tree-Walk</td>
<td>In Progress</td>
<td>Базовая интерпретация</td>
</tr>
<tr>
<td>Bytecode Interpreter</td>
<td>In Progress</td>
<td>Быстрее tree-walk</td>
</tr>
<tr>
<td>TS-JIT</td>
<td>Планируется</td>
<td>Нативная оптимизация</td>
</tr>
</tbody>
</table>
<h2>Перспективы Rust в JS-движках</h2>
<p dir="auto">Rust входит в V8 через temporal_rs - это первый случай, упрощающий обмен библиотеками. Kiesel и Yavashark показывают, как такие движки конкурируют с гигантами вроде Chrome. Дальше ждем полной Stage 4 и интеграции в большее число проектов.</p>
<p dir="auto">Эксперименты с WASM и pluggable time zones обсуждаются в сообществе. Это оставляет пространство для кастомизации, но базовая реализация уже мощная. Стоит следить, как temporal_rs повлияет на производительность реальных приложений.</p>
]]></description><link>https://forum.exlends.ru/topic/1709/kiesel-i-yavashark-rust-realizacii-temporal-dlya-uskoreniya-js-dvizhkov</link><generator>RSS for Node</generator><lastBuildDate>Sat, 17 Oct 2026 03:52:57 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/1709.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Mar 2026 17:57:16 GMT</pubDate><ttl>60</ttl></channel></rss>