
2026/06/11 0:47
Show HN: オブジェクトストレージ上に構築されたグラフデータベース HelixDB
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
HelixDB は、グラフ、ベクトル、KV、ドキュメント、および関係データモデルを 1 つのレイヤーに統合して個別のデータベースレイヤーを不要にする、AI アプリケーション向けに一貫性を備えたデータベースプラットフォームです。本プラットフォームは、ビルドやデプロイの手順を必要とせずに Rust または TypeScript でクエリを書けるようにすることで開発を簡素化します:Rust 版では
helix-db クレートを使用し、TypeScript 版では fetch を通じてサービスと対話します。初歩的な設定には CLI のインストールが含まれ、その後インタラクティブな helix chef ツールを実行してワンショットでのブートストラップとコーディングエージェント(Claude Code や Codex など)に適したプロジェクトのスケルデンを生成したり、helix init、helix start dev、helix query などのコマンドを用いて手動でローカル環境をセットアップしたりできます。ローカル開発ではデフォルトとしてメモリ内ストレージが使用され、必要に応じて --disk フラグまたはログストリーミング用の --foreground フラグによってパシスtent ディスクモードへの切り替えやログのストリーミングが可能です。HelixDB はさらに、オブジェクトストレージで裏付けられたマネージド型の高可用性クラウドサービスを提供し、自動スケーリングリーダーノードと完全な ACID トランザクションを備えています。本番環境での設定には認証の実施、ワークスペース/プロジェクトの切り替え、helix init cloud によるクラスタ初期化、本番 URL の同期、および本番エンドポイントからのクエリ実行が含まれます。商取引サポートは創設者または当社のウェブサイトを通じて利用可能であり、さらに詳細なガイダンスについてはドキュメントおよび Discord と X / Twitter のコミュニティチャネルで入手できます。本文
HelixDB: 全コンポーネントを統合した AI アプリケーション用データベース
HelixDB は、AI アプリケーション構築に必要なあらゆるコンポーネントを単一のプラットフォーム上で提供するデータベースです。
主な特徴
- 一元化管理: 分離された DB やアプリ層を別途用意せず、以下の機能を包括的にサポートします。
- アプリケーション DB(エージェンツの記憶機能、企業知見への連合アクセス対応)
- リレーショナル DB
- ベクター DB
- グラフ DB
- 多様なデータモデル: メインは「グラフ + ベクター」ですが、KV ストア、ドキュメント、リレーショナルデータにも対応。
インストールとセットアップ手順
1. CLI のインストール
Helix CLI を使用してローカルインスタンスを管理し、Helix Cloud と通信します。
curl -sSL "https://install.helix-db.com" | bash
バージョン更新:
もし既にインストール済みの場合は、最新版へアップデートしてください:
helix update
2. 「helix chef」による素早いセットアップ
対話型のワンショット型ブートストラッパーです。以下を自動構築します。
- HelixDB クエリスキルのインストール
- ドキュメント MCP のインストール
- プロジェクトの足場作成
- ローカルインスタンスの起動
- サンプルデータのシード(初期化)
の作成HELIX_CHEF_PROMPT.md
対応するコーディングエージェント: Claude Code、Codex、OpenCode など。
手順: 特別なフラグは不要です。「何を構築したいか」という一行の記述を受け付け、フロントエンドを含む動作するアプリケーションを引き継ぎます。表示されるプロンプトに従って進めてください。
3. 手動によるローカル環境のセットアップ
ご自身で構成を行いたい場合は以下の手順を実行します。
ステップ A: プロジェクト初期化
mkdir my-helix-app && cd my-helix-app helix init
これで
helix.toml、.helix/ ワークスペースディレクトリ、および examples/request.json が生成されます。
ステップ B: ローカルインスタンスの起動
ポート 6969 でバックグラウンドコンテナを実行します。クエリを受け付けるまで待機してください。
helix start dev
注意点:
- デフォルトのストレージモードは**「メモリ内」**です。
- インスタンス停止時にデータが失われます。
- 再起動後にデータを保持したい場合は
フラグを使用します。--disk - ログをリアルタイムで表示したい場合は
フラグを使用します。--foreground
ステップ C: クエリの送信
helix query dev --file examples/request.json
ステップ D: 完了時の終了
使用が完了したらインスタンスを終了してください。
SDK によるクエリ作成
クエリは Rust または TypeScript の DSL で記述し、ビルドやデプロイを経ずに動的なリクエスト(
)として直接送信されます。両方の SDK は同一の JSON AST を生成します。POST /v1/query
詳細は「クエリングガイド」を参照してください。
Rust SDK
インストール
パッケージ名
helix-db(インポート時:helix_db)を使用します。
cargo init && cargo add helix-db tokio sonic-rs
実装例
#[register] アノテーション付き関数として定義し、クライアントで直接実行します。
use helix_db::Client; use helix_db::dsl::prelude::*; // ユーザー追加のロジック #[register] pub fn add_user(name: String) { write_batch() .var_as( "user", g().add_n("User", vec![("name", name)]) .value_map(None::<Vec<String>>), ) .returning(["user"]) } // ユーザー取得のロジック #[register] pub fn get_user(name: String) { read_batch() .var_as( "user", g().n_with_label("User") .where_(Predicate::eq("name", name)) .value_map(None::<Vec<String>>), ) .returning(["user"]) } #[tokio::main] async fn main() { let client = Client::new(None).unwrap(); // デフォルト:http://localhost:6969 // ユーザーを追加 let new_user = client .query::<sonic_rs::Value>() .dynamic(add_user("John Doe".to_string())) .send() .await .unwrap(); println!("新しいユーザー:{:#}", sonic_rs::to_string_pretty(&new_user).unwrap()); // ユーザーを取得 let user = client .query::<sonic_rs::Value>() .dynamic(get_user("John Doe".to_string())) .send() .await .unwrap(); println!("ユーザー:{:#}", sonic_rs::to_string_pretty(&user).unwrap()); }
TypeScript SDK
インストール
Node.js 20 以降が必要です。
npm init -y && npm install @helix-db/helix-db
実装例
クエリを関数として定義し、インスタンスに対して
POST 送信します。
import { Predicate, PropertyInput, PropertyProjection, defineParams, g, param, readBatch, writeBatch, } from "@helix-db/helix-db"; const addUserParams = defineParams({ name: param.string() }); function addUser(p = addUserParams) { return writeBatch() .varAs("user", g().addN("User", { name: PropertyInput.param("name") }) .project([PropertyProjection.new("name")]), ) .returning(["user"]); } const getUserParams = defineParams({ name: param.string() }); function getUser(p = getUserParams) { return readBatch() .varAs("user", g().nWithLabel("User") .where(Predicate.eqParam("name", "name")) .project([PropertyProjection.new("name")]), ) .returning(["user"]); } const HELIX_URL = "http://localhost:6969/v1/query"; // ユーザーを追加 const newUser = await fetch(HELIX_URL, { method: "POST", headers: { "content-type": "application/json" }, body: addUser().toDynamicJson(addUserParams, { name: "John Doe" }), }).then((r) => r.json()); console.log("新しいユーザー:", newUser); // ユーザーを取得 const user = await fetch(HELIX_URL, { method: "POST", headers: { "content-type": "application/json" }, body: getUser().toDynamicJson(getUserParams, { name: "John Doe" }), }).then((r) => r.json()); console.log("ユーザー:", user);
HelixDB Cloud
HelixDB Cloud は、オブジェクトストレージを基盤としたマネージドサービスです。
提供機能
- 統合されたベクター検索およびフルテキスト検索
- 完全な ACID トランザクション保証
- 自動スケーリング対応:単一書き込みノードと多数の読み取りノード構成
- 高可用性: 3 つ以上のゲートウェイおよびデータベースノードで実現
クラスタ管理コマンド
ローカルインスタンスとは別々の展開パスを使用します。
helix auth login # 認証 helix workspace switch <workspace> # ワークスペース+プロジェクトの選択 helix project switch <project> helix init cloud --cluster-id <cluster-id> # クラスタ初期化 # または helix add cloud --name production --cluster-id <id> helix sync production # ゲートウェイ URL と認証契約を helix.toml に引き下ろす helix query production --file examples/request.json
商用サポート
HelixDB は分散型で高可用性なマネージドサービスとして提供されています。ご開始については以下のいずれかをお選びください。
- 公式サイトを通じて直接ご契約いただく
- 創業者との個別相談(お問い合わせより)
ドキュメントとコミュニティ
📚 ドキュメント · 📘 クエリングガイド
💬 Discord
🐦 X / Twitter
Simply Helix をお使いください。