
2026/03/08 22:28
ビーグル(Beagle)―ASTツリーを格納するソースコード管理システムです。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Beagle は、コードをプレーンファイルやバイナリではなく抽象構文木(AST)として保存する実験的な自己ホスト型ソースコード管理システムです。すべてのコード関連データ―チケット、CI結果など―を単一のデータベースハブとして機能し、現在は RocksDB をキー・バリュー ストアとして使用しています。AST の変更にわたって一貫性を保つために CRDT に似た形式である BASON が採用されています。
ユーザーは簡易 CLI コマンドを通じて Beagle と対話します:
はプロジェクト(リポジトリとパス)を投稿し、デフォルトでローカルディレクトリbe post //replicated.live/@gritzko/librdx
に保存します。$HOME/.be- 投稿後、Beagle は各ファイルの状態を行単位で報告します(例:「OK h ast/tree-sitter/point.h」)。
- RocksDB ディレクトリ (
) を調べると内部データ構成が確認できます。$HOME/.be/replicated.live/
はプロジェクトのコード(約 100 万行)を取得し、リポジトリ名、プロジェクト名、ブランチ、ベースファイル数(約 574)、ウェイポイント数などのメタデータを表示します。be get //replicated.live/@gritzko/librdx
まだ初期段階ですが、Beagle は AST ベースのツールでチームがより効果的に協力できるようコード情報を集中化することを目指しています。今後の更新ではコマンドインターフェイスを通じてさらに豊富なデータを公開し、追加リポジトリやブランチへのサポート拡大が期待されますが、ユーザーは実験的ソフトウェアに伴う典型的なリスクを認識しておく必要があります。
本文
Beagle SCM
Beagle は、バイナリブロブの代わりに AST(抽象構文木)を保存するソースコード管理システムです。
コードのデータベースとして機能し、コード関連のすべての活動のハブとなり、チケットや CI の結果など関連情報も格納します。バックエンドストアは任意のキー・バリュー型データベースを使用できますが、現在は RocksDB が採用されています。
データ形式である AST BASON は CRDT(Conflict‑Free Replicated Data Type)に近い構造です。
Beagle はまだ実験段階にあり、自前でホストしていますが、その他の機能は保証されていません――ご利用は自己責任でお願いいたします。
さらに読む
- デザイン原理
- ブランチングとストレージモデル
- BASON – 安価にマージ可能なバイナリ JSON
使用例
# プロジェクトの初期 POST。リポジトリとプロジェクトパスを指定します。 # http: や ssh: がない場合は $HOME/.be 内でローカルに保存されます。 $ be post //replicated.live/@gritzko/librdx ... OK h ast/tree-sitter/point.h OK h ast/tree-sitter/parser.h OK c ast/tree-sitter/query.c OK text ast/verilog/LICENSE ...さらに数百万行... # RocksDB の内部構造を好奇心で確認する場合。 $ ls $HOME/.be/replicated.live/ # ワークツリー/リポジトリの状態を確認 $ cat .be //replicated.live/@gritzko/librdx $ be repo: replicated.live project: /@gritzko/librdx branches: *main base files: 574, waypoints: 0 $ cd /some/other/dir $ be get //replicated.live/@gritzko/librdx ...数百万行... OK h rdx/test/YX.h OK h rdx/test/ZE.h OK sh rdx/test/http-test.sh OK sh rdx/test/query-test.sh OK sh scripts/ci-fast.sh $ cd librdx $ be repo: replicated.live project: /@gritzko/librdx branches: *main base files: 574, waypoints: 0