概要
- Bolt はリアルタイムアプリケーション向けの 軽量・高速・型安全 な埋め込み言語
- 最小限の依存関係 と 小規模な実装 でビルドサイズへの影響が少ない
- 高速なコンパイル と 豊富な型システム による安全性確保
- 組み込みやすさ を重視した設計
- MITライセンス で公開、貢献やバグ報告も歓迎
Boltとは
- Bolt はリアルタイムアプリケーションに最適化された 超高速・軽量・型安全 なスクリプト言語
- 組み込み用途 を最優先に設計、わずかなコードで他言語と連携可能
- 豊富な型システム で実行前にエラーを検出、ネイティブコードからの拡張も容易
- 最小限の依存関係 (C標準ライブラリとUnix系ではlibmのみ)で動作
- 組み込み例やガイド も充実、CLIツールも同梱
主な特徴
- 圧倒的な実行速度、同クラス他言語を凌駕
- コンパクトな実装、ビルドサイズへの影響極小
- 爆速コンパイル、1スレッドで50,000行/秒以上
- 組み込みやすさ、数行で導入可能
- 堅牢な型システム、エラーを事前検出
- Embed-first設計、他言語との連携・パフォーマンス重視
依存関係と構成
- C標準ライブラリ と libm (Unix系)のみ
- ファイル/システムIO 等の標準ライブラリモジュールは無効化可能
- メモリ管理 はmalloc/realloc/freeをデフォルト使用(カスタマイズ可能)
- 正規表現解析 に自作ライブラリ picomatch を内蔵
組み込み・ビルド方法
- x64アーキテクチャ のみサポート、32bitは非対応、arm/riscvは未検証
- CMake で静的ライブラリとCLIツールを生成
- 組み込み例 はbolt-cliや公式ガイド参照
- 詳細設定 はbt_config.hを参照
コンパイラ対応状況
| コンパイラ | ステータス | 備考 | |:---|:---|:---| | MSVC | ✅ | 問題なし | | GCC | ✅🟨 | 機能全対応、一部警告あり | | Clang | ✅🟨 | 機能全対応、一部警告あり |
- 安定版ではない ため、バグやクラッシュ報告を歓迎
言語例
import print, error, Error from core
import abs, epsilon from math
fn safe_divide(a: number, b: number) {
if abs(b) < epsilon {
return error("Cannot divide by zero!")
}
return a / b
}
match let result = safe_divide(10, 5) {
is Error { print("Failed to divide:", result.what) }
is number { print("The answer is", result) }
}
コントリビューション方針
- バグ修正 は合理的範囲で歓迎、動作変更は不可
- テスト追加 や リグレッション防止 を推奨
- 最適化提案 も軽微なら受け入れ、ベンチマーク必須
- 新機能追加 は慎重審査、事前提案・計画提出が必要
- パフォーマンス・実装コスト・ユースケース の明確化を要求
ライセンス
- MITライセンス 採用、詳細はLICENSE参照
リンク一覧
- Bolt programming guide
- Bolt standard library reference
- Bolt embedding and API reference
- Bolt performance
- Notable Bolt users
開発者からのメッセージ
- Bolt は長年インタプリタを開発してきた作者が理想を形にした 初の公開リリース(0.1.0)
- 安全性・型付け 重視の流れを受け、Boltは言語レベルで型システムを採用
- 安全性・パフォーマンス向上 を両立
- 今後、組み込み例やトイアプリを公開予定
- 興味があればexamplesやプログラミングガイドを参照