Skip to content

Latest commit

 

History

History
15 lines (10 loc) · 1.54 KB

api-design.md

File metadata and controls

15 lines (10 loc) · 1.54 KB

APIデザイン ガイドライン

Rust 以外の言語の API

VOICEVOX CORE の主要機能は Rust で実装されることを前提としており、他の言語のラッパーでのみの機能追加はしない方針としています。これは機能の一貫性を保つための方針です。

ただし機能追加ではない範囲で、各言語の習慣に適合するような変更は積極的に行っていきます。例えば:

  • AudioQueryといったJSONで表現可能なデータ型は、PythonならPydantic、JavaScriptならZodといったライブラリを使って表現すべきです。
    • Rust APIとやりとりする際はJSONを介して変換します。
  • StyleIdといったnewtypeは、そのままnewtypeとして表現するべきです。
  • オプショナルな引数は、キーワード引数がある言語であればキーワード引数で、ビルダースタイルが一般的な言語であればビルダースタイルで表現すべきです。