glojure - Go 上でホストされる Clojure インタープリタ
(github.com/glojurelang)- 他の Go ベースの Clojure 実装とは異なり、"ホスト型(hosted)" 言語として設計された Clojure インタープリタ
- 拡張可能な相互運用(interop)をサポートし、あらゆる Go の値を Glojure の値として、またその逆でも利用可能
- Clojure が Java フレームワークにアクセスするように、Go ライブラリへ容易にアクセス可能
- スタンドアロン CLI ツール(glj) と Go アプリケーションへの埋め込み、2つの方式をサポート
- 埋め込み時にはスクリプト可能な設定の追加、Clojure プラグイン拡張、Go の性能と Clojure の表現力の組み合わせが可能
- Clojure ↔ Go の双方向呼び出しをサポートし、Go 関数を Clojure から、Clojure 関数を Go から呼び出し可能
- 多数の 標準ライブラリ interop を標準搭載
- 名前空間の曖昧さを避けるため、Go パッケージ名の
/を:に置換(例:net/http→net:http) - 追加パッケージは package map を生成した後、直接コンパイルして公開
- 名前空間の曖昧さを避けるため、Go パッケージ名の
- インタラクティブ REPL 機能として、Vi/emacs 編集モード、複数行編集、タブ補完、永続履歴、job control、割り込みを提供
- 数値型には Clojure とのマッピング差異あり(例:
long→int64、char→lang.Char、BigInt→*lang.BigInt) - まだ 初期開発段階 のため、バグや未実装機能があり、性能も限定的で、v1 以前までは後方互換性は保証されない
- EPL-1.0 ライセンス
まだコメントはありません。