VOICEVOX CORE の主要機能は Rust で実装されることを前提としており、他の言語のラッパーでのみの機能追加はしない方針としています。これは機能の一貫性を保つための方針です。
ただし機能追加ではない範囲で、各言語の習慣に適合するような変更は積極的に行っていきます。例えば:
AudioQuery
といったJSONで表現可能なデータ型は、PythonならPydantic、JavaScriptならZodといったライブラリを使って表現すべきです。- Rust APIとやりとりする際はJSONを介して変換します。
StyleId
といったnewtypeは、そのままnewtypeとして表現するべきです。- 例えばPythonなら
typing.NewType
で表現します。
- 例えばPythonなら
- オプショナルな引数は、キーワード引数がある言語であればキーワード引数で、ビルダースタイルが一般的な言語であればビルダースタイルで表現すべきです。