// lab/

Лабораторія

Мої штуки наживо: мова Piton у браузері, rombik (блок-схеми з коду за ДСТУ) і живий бенчмарк SHA-256.

  • Остання версія 1.9.0
    Найновіший рушій та оптимізації прямо з репозиторію.
  • Інтерпретатор у WASM
    Лише ~220 КБ для швидкого завантаження (через TinyGo).
  • Блок-схеми через rombik
    Нативна інтеграція з рушієм rombik для генерації SVG.
  • 100% Локально
    Без сервера, безпечно, весь код виконується у твоєму браузері.
main.piton
Натисни «Запустити» — інтерпретатор завантажиться при першій взаємодії (~220 КБ).
Натисни «Запустити», щоб побачити вивід
// rombik

rombik — блок-схеми з коду

Ще один інструмент у дусі Piton: компілятор, що малює блок-схеми за ДСТУ 19.701-90 прямо з Python — повністю в браузері.

  • Компіляторний конвеєр
    Python → AST → IR → геометрія → рендер; чисті межі між етапами
  • A* маршрутизація
    Ребра без зайвих зламів — A* на сітці Ханана зі штрафом за повороти
  • Нативний експорт
    SVG · PNG · PDF · Typst на чистому Go, без зовнішніх бінарників
  • 100% локально
    Парсинг через Pyodide у браузері — код не залишає твій пристрій
algorithm.py
Перший запуск підтягне Python (Pyodide) + рушій rombik — кілька МБ; далі миттєво й локально

Натисни «Побудувати», щоб побачити блок-схему

// benchmark.bench

JS vs Go·WASM — той самий хеш

Той самий SHA-256, той самий вхід, два двигуни. Зліва — JS-копія офіційного клієнта Студентської Гривні. Справа — мій Go-варіант із SHMiner, скомпільований у WASM через TinyGo. Гілки запускаються по черзі по 10 секунд: спочатку JS на повному ядрі, потім Go·WASM на N ядрах. Так кожна гілка отримує весь CPU для себе — числа чесні.

Готово до старту
Воркерів Go
· у тебе ядер: 4 · запущено: 4
JS-режим
· копія офіційного клієнта — з `sleep(1)` кожні 1000 хешів
Офіційний JS-майнер
×1 · verbatim
H/s
Знайдено токенів
Хешів усього
SHMiner (Go·WASM)
×4
H/s
Знайдено токенів
Хешів усього

ⓘ Виконується на твоєму залізі у твоєму браузері. JS-гілка — один потік, точна копія `calculateBlockHash` з офіційного клієнта (`await window.crypto.subtle.digest`, опціонально + `sleep(1)` кожні 1000 хешів). Go·WASM крутиться у пулі Web Worker'ів — по одному на ядро, як SHMiner використовує пул горутин. Складність — 20 біт (5 нулевих hex-символів на початку), як у SHMiner за замовчуванням.

Це браузерна демонстрація

Native-Go з desktop-клієнта набагато швидший за TinyGo·WASM у браузері — SHA-256 у native Go використовує SIMD/AVX-інструкції CPU (4-8 блоків паралельно у скалярному WASM = 0), а Web Worker'и платять за serialization. Реальні цифри (1000×+ vs офіційний JS-майнер) виходять лише на справжньому SHMiner. Wails-додаток — кросплатформа: Linux · macOS · Windows.

SHMiner на GitHub