メインコンテンツまでスキップ

「Beancount v3」タグの記事が1件件あります

全てのタグを見る

Beancount v3: 新機能は何ですか?

· 約4分
Mike Thrift
Mike Thrift
Marketing Manager

Beancount バージョン3は2024年中頃にリリースされ、人気のプレーンテキスト会計ツールにとって重要なアーキテクチャの進化を示します。ユーザーの元帳ファイルとの下位互換性は維持しつつ、基盤となる構造と付随するツールは大幅に変更されました。以下に Beancount v3 の新機能をまとめます。

よりモジュラーでスリムなアーキテクチャ

2025-06-06-whats-new-in-beancount-v3

Beancount v3 で最も重要な変更は、よりモジュラーなエコシステムへの移行です。以前はコアに統合されていた主要な機能が、別々の独立したプロジェクトとして分離されました。これにより Beancount のコアは軽量化され、個々のコンポーネントに対する開発がより集中できるようになりました。

現在は別パッケージとして提供されている主要コンポーネントは次のとおりです:

  • beanquery: 元帳ファイル用の強力な SQL ライクなクエリツールが、現在は独立したパッケージとなっています。
  • beangulp: データインポートフレームワークの新しい拠点で、従来の beancount.ingest モジュールに代わります。
  • beanprice: 商品や株式の価格取得専用ツールです。

この分離により、ユーザーは従来のバージョン2で使用していたフル機能を維持するために、beancount 本体に加えてこれらのパッケージをインストールする必要があります。

コマンドラインツールとワークフローの変更

新しいモジュラーアーキテクチャを反映し、コマンドラインツールにいくつか顕著な変更があります:

  • bean-report は廃止: このツールは削除されました。ユーザーはレポート作成に bean-querybeanquery パッケージ)を使用することが推奨されます。
  • 新しいインポーター・ワークフロー: bean-extractbean-identify コマンドはコアから削除されました。beangulp を用いた新しいアプローチはスクリプトベースです。ユーザーは銀行明細など外部ソースからのデータインポートを処理するために、独自の Python スクリプトを作成します。

構文と機能の強化

コアとなる会計原則は変わりませんが、Beancount v3 は構文にいくつかの柔軟性を導入しています:

  • 通貨コードの柔軟化: 以前は通貨名の長さや文字種に制限がありましたが、これが緩和され、1文字の通貨シンボルもサポートされるようになりました。
  • 取引フラグの拡張: 取引のフラグとして A から Z までの任意の大文字を使用でき、より細かい分類が可能になりました。

重要なのは、これらの変更は下位互換性があるため、既存の Beancount v2 の元帳ファイルは変更なしでそのまま使用できます。

C++ リライトとパフォーマンス

Beancount の長期的な目標の一つは、パフォーマンスクリティカルなコンポーネントを C++ でリライトすることでした。この作業は進行中ですが、Beancount v3 の最初のリリースには C++ ベースのコアは 含まれていません。したがって現時点では v3 のパフォーマンスは v2 と同等です。C++ のコードは将来の統合に向けて別の開発ブランチに残されています。

v2 から v3 への移行

ほとんどのユーザーにとって、Beancount v2 から v3 への移行は比較的簡単です:

  1. 元帳ファイル: .beancount ファイルに変更は不要です。
  2. インストール: pip を使用して beanquerybeangulp などの新しい別パッケージをインストールする必要があります。
  3. インポーター・スクリプト: カスタムインポーターがある場合、 新しい beangulp API を使用するように更新する必要があります。主にインポーターが継承する基底クラスの変更と、いくつかのメソッドシグネチャの調整が必要です。
  4. Fava: Beancount の人気ウェブインターフェースである Fava は v3 に対応するように更新されています。シームレスな体験のために、最新バージョンの Fava を使用してください。

要するに、Beancount v3 はプロジェクトのアーキテクチャをスリム化し、長期的によりモジュラーで保守・拡張しやすい基盤リリースです。特にデータインポート周りでユーザーのワークフローにいくつかの調整が必要ですが、この強力な会計ツールの将来の開発に向けた土台を築きます。