Skip to content
naruminchoPublic

About

deiny is web app for web app. under development

Topics

Resources

Stars

17 stars

Watchers

1 watching

Forks

Latest commit

 

History

3,932 Commits

Folders and files

Repository files navigation

definy

シンプルな純粋関数型言語でビジュアルプログラミング言語, 実用を目指して開発しているプログラミング言語

definyのスクリーンショット

アーキテクチャとディレクトリ構成

TypeScript + React 19 + Void (Vite 8 / Rolldown / Oxc) によるフルスタック Cloudflare Workers 構成を採用しています。

  • pages/: React 19 ページルーティング (@void/react)
    • イベントタイムライン、パーツ一覧/詳細、モジュール、コミット履歴、デプロイセンター等
  • src/: UI ワークベンチ実装
    • components/: VS Code 風ワークベンチ、ActivityBar、ExplorerSidebar、CommandPalette、ConnectionStatus 等
    • stage1_compiler.ts: definy 自己記述コンパイラ (wasm/stage1.wasm) の TypeScript 実行パイプライン
    • state.tsx: AppState, i18n, イベント管理 Context
    • auth.ts / rpc_auth.ts: Ed25519 アカウント・イベント署名と RPC の Authorization ヘッダー (仕様)
    • signed_event.ts: SignedEvent のデコードと Ed25519 署名検証 (Worker と、受信イベントを表示前に検証するブラウザで共用)
    • invalid_signature_samples.ts: ブラウザ側の署名チェック確認用の不正署名サンプル (手順)
    • tree_layout/: 式の木構造エディタ (レイアウト計算・編集操作・期待型の推論)
    • main.css: IDE ダークテーマ スタイルシート
  • middleware/: Void ミドルウェア (Connect-RPC, /virtual/wasm/*, /healthz のインターセプトと、SSR レスポンスへのセキュリティヘッダー付与)
  • worker/: Cloudflare Worker バックエンド実装
    • index.ts: API ハンドラー
    • store.ts: Cloudflare D1 (SQLite) イベント・CAS ストア
    • cbor.ts: 決定論的 CBOR & Ed25519 署名ユーティリティ
  • wasm/:
    • stage1.wasm: definy 言語自身で記述・自己コンパイルされた固定点 Wasm コンパイラ (外部 import ゼロ)
  • seeds/: 組み込みモジュール (core, std, wasi, sample, definy) の seed 定義とバンドル JSON
  • docs/: 設計・アーキテクチャドキュメント (TypeScript + React + Void アーキテクチャ など)

事前に必要な環境

  • Node.js (v26.13.0 推奨, .node-version 準拠)
  • fnm (推奨: .node-version により自動で Node.js 26.13.0 が選択されます)
  • npm

開発コマンド

# 依存パッケージのインストール
npm ci

# 開発サーバー起動 (HMR 対応)
npm run dev

# 単体・適合テスト実行 (Vitest: stage1.wasm Wasm 実行 & D1 & Conformance)
npm test

# TypeScript 型検査
npm run check

# 高速 Linter (oxlint)
npm run lint

# コード整形 (Prettier)
npm run fmt

# シードバンドル生成 (seeds/*.json -> public/__definy_seed_bundle.json. dev / build / test でも自動で実行。docs/build-artifacts.md)
npm run build:seeds

# フルスタック プロダクションビルド (Worker + クライアント)
npm run build

# Cloudflare Workers へのデプロイ
npm run deploy

About

deiny is web app for web app. under development

Topics

Resources

Stars

17 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages