UStackUStack
Better Sol icon

Better Sol

Better SolはTypeScriptでSolanaプログラムを書くためのツール。1ファイルでプログラムと型付きクライアントを定義。Rust不要です。

Better Sol

Better Solとは?

Better Solは、Rustの代わりにTypeScriptを使用してSolanaプログラムを書くためのツールです。1つのファイルでオンチェーンプログラムとそれと対話するための型付きクライアントを定義するシングルプログラムソースパターンで設計されています。

主な目的は、プログラムロジックと対応するクライアント型を一緒に保つことでSolana開発者のワークフローを効率化し、Rustに切り替えることなくSolana機能の構築と使用を可能にすることです。

主な機能

  • TypeScript優先のSolanaプログラム作成:RustではなくTypeScriptでプログラムを書く。
  • 1ファイルでプログラム+型付きクライアント:Solanaプログラムと型付きクライアントを1つのファイルで定義。
  • 型付きクライアント生成:クライアントインターフェースがプログラム定義に連動し、対話が型安全になる。
  • 言語境界の削減:オンチェーンコードとクライアントAPIを同じTypeScriptコードベースに保持。

Better Solの使い方

  • Solanaプログラム定義と型付きクライアントの両方を含む単一のBetter Solファイルを作成。
  • 同じファイルでプログラムロジックを実装。
  • 同じコードから型付きクライアントを使用してトランザクションを構築し、プログラムと対話。
  • サイトで提供されるプロジェクトのドキュメントされたワークフローに従ってSolanaプログラムをビルド・デプロイ。

ユースケース

  • TypeScriptでSolanaスマートコントラクトを構築:フロントエンドとバックエンドの両方でTypeScriptを好むチームは、Solana開発を同じ言語で進められる。
  • プログラム対話のための強型クライアント作成:開発者は型付きクライアントインターフェースを使用して、指示呼び出し時の手動配線を削減。
  • 新しいオンチェーン機能のプロトタイピング:プログラムとクライアントを1か所にまとめ、指示形状とデータ型の反復を高速化。
  • TypeScriptモノレポ内でのプログラムAPI共有:クライアントコードが他のTypeScriptサービスと共存する場合、統一ファイルでプログラムと消費者コードの境界を簡素化。
  • Solanaへの開発者教育・オンボーディング:Rustを避けたい開発者は、TypeScriptでプログラム定義とクライアント使用を進められる。

FAQ

Better SolはRustプログラムの記述を必要としますか? いいえ。製品の位置づけでは、Rust不要でTypeScriptでSolanaプログラムを書けると述べられています。

プログラムとクライアントは別々に定義されますか、それとも一緒にですか? Better Solは、プログラムと型付きクライアントを1つのファイルで定義すると記述されています。

型付きクライアントはどの言語ベースですか? 型付きクライアントは、プログラムがTypeScriptで書かれる文脈で記述されています。

既存のプログラムとのクライアント専用統合にBetter Solを使用できますか? 提供されたサイトコンテンツは、1つのファイルでプログラムと型付きクライアントを定義することに焦点を当てています。すでにデプロイ済みの外部定義プログラムに対するクライアント専用使用を明示的にサポートするかは確認されていません。

代替案

  • RustベースのSolana開発フレームワーク:Rustに慣れている場合、多くのSolanaツールチェーンでネイティブサポートされる言語でプログラムを書けますが、オンチェーンRustとオフチェーンクライアントコードの境界を明確に維持する必要があります。
  • Solana向けTypeScriptベースクライアントライブラリ:主な目標が型付きまたは構造化されたクライアント対話の場合、プログラム自体がRustで書かれていても別々のクライアント tooling が役立ちます。
  • 汎用ブロックチェーンSDKアプローチ:標準ライブラリを使用してSolana指示レイアウトとトランザクションフローを構築できますが、クライアント型をプログラムロジックに合わせるための手動作業が増えます。
  • その他の「プログラム定義+生成クライアント」ツールパターン:一部のツールはプログラム仕様からクライアントコードを生成します。これらは指示スキーマをクライアント型に接続する方法やRust優先かTypeScript優先かで異なります。