UStackUStack
Better Sol icon

Better Sol

Better Sol — инструмент для написания программ Solana на TypeScript: в одном файле задаются программа и типизированный клиент, без Rust.

Better Sol

Что такое Better Sol?

Better Sol — инструмент для написания программ Solana на TypeScript вместо Rust. Он построен вокруг шаблона одного файла, где один файл определяет вашу on-chain программу и типизированный клиент для взаимодействия с ней.

Основная цель — упростить рабочий процесс разработчика Solana, сохраняя логику программы и соответствующие типы клиента вместе, чтобы вы могли создавать и использовать функциональность Solana без переключения на Rust.

Ключевые возможности

  • TypeScript-first создание программ Solana: пишите программу на TypeScript вместо Rust.
  • Один файл для программы + типизированного клиента: определяйте Solana-программу и типизированный клиент в одном файле.
  • Генерация типизированного клиента: интерфейс клиента привязан к определению программы, чтобы взаимодействия были типизированными.
  • Снижение языковых границ: держите on-chain код и клиентский API в одной TypeScript-кодовой базе.

Как использовать Better Sol

  • Создайте один файл Better Sol, содержащий определение Solana-программы и типизированный клиент.
  • Реализуйте логику программы в том же файле.
  • Используйте типизированный клиент из того же кода для создания транзакций и взаимодействия с программой.
  • Следуйте документированному рабочему процессу проекта (как указано на сайте) для сборки и развертывания Solana-программы.

Случаи использования

  • Создание смарт-контракта Solana на TypeScript: команды, предпочитающие TypeScript для фронтенда и бэкенда, могут вести разработку Solana на том же языке.
  • Создание строго типизированного клиента для взаимодействия с программой: разработчики могут использовать типизированный интерфейс клиента, чтобы сократить ручную настройку при вызове инструкций.
  • Прототипирование новых on-chain функций: держите программу и клиент в одном месте для быстрой итерации по формам инструкций и типам данных.
  • Обмен API программы в TypeScript-монорепозитории: когда клиентский код находится рядом с другими TypeScript-сервисами, единый файл упрощает границу между программой и потребительским кодом.
  • Обучение или онбординг разработчиков для Solana: разработчики, желающие избежать Rust, могут работать с определением программы и использованием клиента на TypeScript.

FAQ

Требует ли Better Sol написания программ на Rust?
Нет. Позиционирование продукта указывает, что Solana-программы можно писать на TypeScript без Rust.

Определяются ли программа и клиент отдельно или вместе?
Better Sol описан как использующий один файл для определения программы и типизированного клиента.

На каком языке основан типизированный клиент?
Типизированный клиент описан в контексте разработки на TypeScript, поскольку программа пишется на TypeScript.

Можно ли использовать Better Sol только для клиентской интеграции с существующей программой?
Содержимое сайта фокусируется на определении программы и типизированного клиента в одном файле. Не подтверждается явно поддержка только клиентского использования для уже развернутой внешней программы.

Альтернативы

  • Фреймворки для разработки Solana на Rust: если вы комфортны с Rust, можно писать программы на языке, нативно поддерживаемом многими Solana-инструментами, но обычно сохраняется четкая граница между on-chain Rust и off-chain клиентским кодом.
  • Библиотеки клиентов на TypeScript для Solana: если главная цель — типизированные или структурированные клиентские взаимодействия, отдельные клиентские инструменты помогут даже при написании программы на Rust.
  • Общий подход SDK для блокчейна: можно строить layouts инструкций Solana и потоки транзакций с помощью стандартных библиотек, но потребуется больше ручной работы для согласования типов клиента с логикой программы.
  • Другие шаблоны инструментов «определение программы + генерируемый клиент»: некоторые инструменты генерируют клиентский код из спецификаций программы; они могут отличаться способом связи схем инструкций с типами клиента и ориентацией на Rust или TypeScript.