Spin — это платформа для создания, развертывания и запуска быстрых, безопасных и компонуемых облачных микросервисов с помощью WebAssembly.
Spin — это платформа с открытым исходным кодом для создания и запуска быстрых, безопасных и компонуемых облачных микросервисов с помощью WebAssembly. Он призван стать самым простым способом начать работу с микросервисами WebAssembly и использовать преимущества последних разработок в модели компонентов WebAssembly и среде выполнения Wasmtime.
Spin предлагает простой интерфейс командной строки, который помогает вам создавать, распространять и выполнять приложения. В следующих разделах мы узнаем больше о приложениях Spin и о том, как начать работу.
См. страницу Install Spin документации Spin для получения подробного руководства по установке и настройке Spin, но вкратце выполните следующие команды:
завиток -fsSL https://developer.fermyon.com/downloads/install.sh | бить sudo mv ./spin /usr/local/bin/spin
Альтернативно вы можете собрать Spin из исходного кода.
Чтобы приступить к написанию приложений, следуйте краткому руководству, а затем следуйте руководствам по языкам Rust, JavaScript, Python или Go, а также руководству по написанию приложений Spin.
Ниже приведен пример использования интерфейса командной строки spin
для создания нового приложения Spin. Чтобы запустить пример, вам потребуется установить цель wasm32-wasi
для Rust.
$ цель ржавчины добавить wasm32-wasi
Сначала запустите команду spin new
, чтобы создать приложение Spin из шаблона.
# Создайте новое приложение Spin с именем «hello-rust» на основе http-шаблона Rust, принимая все значения по умолчанию. $ spin new --accept-defaults -t http-rust hello-rust
Запуск команды spin new
создал каталог hello-rust
со всеми необходимыми файлами для вашего приложения. Перейдите в каталог hello-rust
и соберите приложение с помощью spin build
, затем запустите его локально с помощью spin up
:
# Компилируем в Wasm, выполнив команду `build`.$ spin build Выполнение команды сборки компонента hello-rust: Cargo build --target wasm32-wasi --release Завершенный выпуск [оптимизированных] целей за 0,03 с. Команда сборки компонентов Spin успешно выполнена.# Запустите приложение локально.$ spin up Журналирование компонента stdio в ".spin/logs/" Обслуживание http://127.0.0.1:3000 Доступные маршруты: привет-ржавчина: http://127.0.0.1:3000 (подстановочный знак)
Вот и все! Теперь, когда приложение запущено, используйте браузер или cURL в другой оболочке, чтобы опробовать его:
# Отправляем запрос приложению.$curl -i 127.0.0.1:3000 HTTP/1.1 200 ОК фу: бар длина контента: 14 дата: четверг, 13 апреля 2023 г., 17:47:24 GMT Привет, Фермион
Вы можете расширить возможности приложения, отредактировав файл src/lib.rs
в каталоге hello-rust
с помощью вашего любимого редактора или IDE. Дополнительные сведения о написании приложений Spin см. в разделе «Написание приложений» документации Spin. Чтобы узнать, как публиковать и распространять ваше приложение, см. руководство по публикации и распространению в документации Spin.
Дополнительную информацию о командах и подкомандах cli см. в Справочнике по CLI.
В таблице ниже приведены сведения о поддержке функций в каждом из языковых SDK.
Особенность | Rust SDK поддерживается? | TypeScript SDK поддерживается? | Python SDK поддерживается? | Поддерживается Tiny Go SDK? | C# SDK поддерживается? |
---|---|---|---|---|---|
Триггеры | |||||
HTTP | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается |
Редис | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Не поддерживается |
API | |||||
Исходящий HTTP | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается |
Переменные конфигурации | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается |
Хранение ключевых значений | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Не поддерживается |
SQLite-хранилище | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Не поддерживается |
MySQL | Поддерживается | Поддерживается | Не поддерживается | Поддерживается | Не поддерживается |
PostgreSQL | Поддерживается | Поддерживается | Не поддерживается | Поддерживается | Поддерживается |
Исходящий Redis | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Поддерживается |
Бессерверный ИИ | Поддерживается | Поддерживается | Поддерживается | Поддерживается | Не поддерживается |
Расширяемость | |||||
Создание пользовательских триггеров | Поддерживается | Не поддерживается | Не поддерживается | Не поддерживается | Не поддерживается |
Мы рады, что вы заинтересованы в том, чтобы сделать Spin лучше! Спасибо!
Каждый понедельник в 14:30 UTC и 21:00 UTC (поочередно) мы встречаемся, чтобы обсудить проблемы Spin, дорожную карту и идеи на наших собраниях проекта Spin. Подпишитесь на этот Календарь Google, чтобы узнавать даты встреч.
Повестка дня собрания Spin Project является публичным документом. Документ содержит повторяющуюся повестку дня с датой и временем каждой встречи, ссылкой на Zoom и темами для обсуждения на день. Вы также найдете протоколы каждой встречи и ссылку на запись. Если у вас есть что-то, что вы хотели бы продемонстрировать или обсудить на встрече проекта, мы рекомендуем вам добавить это в повестку дня.
Вы можете найти руководство по участию здесь.
У Фермиона также есть сервер Discord, где мы обсуждаем все, что угодно. Spin: сервер Discord.
Следуйте за нами в Твиттере: @spinframework
Вы можете присоединиться к сообществу Spin на нашем сервере Discord, где вы сможете задавать вопросы, получать помощь и демонстрировать крутые вещи, которые вы делаете с помощью Spin!