Spin은 WebAssembly를 사용하여 빠르고 안전하며 구성 가능한 클라우드 마이크로서비스를 구축, 배포 및 실행하기 위한 프레임워크입니다.
Spin은 WebAssembly를 사용하여 빠르고 안전하며 구성 가능한 클라우드 마이크로서비스를 구축하고 실행하기 위한 오픈 소스 프레임워크입니다. WebAssembly 마이크로서비스를 시작하는 가장 쉬운 방법을 목표로 하며 WebAssembly 구성 요소 모델 및 Wasmtime 런타임의 최신 개발을 활용합니다.
Spin은 애플리케이션을 생성, 배포 및 실행하는 데 도움이 되는 간단한 CLI를 제공하며, 다음 섹션에서는 Spin 애플리케이션과 시작 방법에 대해 자세히 알아봅니다.
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
CLI를 사용하여 새로운 Spin 애플리케이션을 생성하는 예입니다. 예제를 실행하려면 Rust용 wasm32-wasi
대상을 설치해야 합니다.
$ Rustup 대상은 wasm32-wasi를 추가합니다.
먼저 spin new
명령을 실행하여 템플릿에서 Spin 애플리케이션을 생성합니다.
# Rust http 템플릿을 기반으로 'hello-rust'라는 이름의 새로운 Spin 애플리케이션을 생성하고 모든 기본값을 허용합니다.$ spin new --accept-defaults -t http-rust hello-rust
spin new
명령을 실행하면 애플리케이션에 필요한 모든 파일이 포함된 hello-rust
디렉터리가 생성됩니다. hello-rust
디렉터리로 변경하고 spin build
로 애플리케이션을 빌드한 다음 spin up
으로 로컬에서 실행합니다.
# `build` 명령을 실행하여 Wasm으로 컴파일합니다.$ spin build hello-rust 구성요소에 대한 빌드 명령 실행: 화물 빌드 --target wasm32-wasi --release 0.03초 만에 [최적화된] 타겟 출시 완료 Spin 구성 요소에 대한 빌드 명령을 성공적으로 실행했습니다.# 로컬에서 응용 프로그램을 실행합니다.$ spin up 구성요소 stdio를 ".spin/logs/"에 로깅(http://127.0.0.1:3000 제공) 이용 가능한 노선: hello-rust: http://127.0.0.1:3000 (와일드카드)
그게 다야! 이제 애플리케이션이 실행 중이므로 브라우저나 다른 셸의 cURL을 사용하여 사용해 보세요.
# 애플리케이션에 요청을 보냅니다.$ 컬 -i 127.0.0.1:3000 HTTP/1.1 200 확인 foo: 바 콘텐츠 길이: 14 날짜: 2023년 4월 13일 목요일 17:47:24 GMT 안녕, 페르미온
즐겨 사용하는 편집기나 IDE를 사용하여 hello-rust
디렉터리의 src/lib.rs
파일을 편집하면 앱에서 더 많은 작업을 수행할 수 있습니다. Spin 애플리케이션 작성에 대한 자세한 내용은 Spin 설명서의 애플리케이션 작성을 참조하세요. 애플리케이션을 게시하고 배포하는 방법을 알아보려면 Spin 설명서의 게시 및 배포 가이드를 참조하세요.
cli 명령 및 하위 명령에 대한 자세한 내용은 CLI 참조를 참조하세요.
아래 표에는 각 언어 SDK의 기능 지원이 요약되어 있습니다.
특징 | Rust SDK가 지원되나요? | TypeScript SDK가 지원되나요? | Python SDK가 지원되나요? | Tiny Go SDK가 지원되나요? | C# SDK 지원 여부 |
---|---|---|---|---|---|
트리거 | |||||
HTTP | 지원됨 | 지원됨 | 지원됨 | 지원됨 | 지원됨 |
레디스 | 지원됨 | 지원됨 | 지원됨 | 지원됨 | 지원되지 않음 |
아피스 | |||||
아웃바운드 HTTP | 지원됨 | 지원됨 | 지원됨 | 지원됨 | 지원됨 |
구성 변수 | 지원됨 | 지원됨 | 지원됨 | 지원됨 | 지원됨 |
핵심 가치 저장 | 지원됨 | 지원됨 | 지원됨 | 지원됨 | 지원되지 않음 |
SQLite 스토리지 | 지원됨 | 지원됨 | 지원됨 | 지원됨 | 지원되지 않음 |
MySQL | 지원됨 | 지원됨 | 지원되지 않음 | 지원됨 | 지원되지 않음 |
포스트그레SQL | 지원됨 | 지원됨 | 지원되지 않음 | 지원됨 | 지원됨 |
아웃바운드 Redis | 지원됨 | 지원됨 | 지원됨 | 지원됨 | 지원됨 |
서버리스 AI | 지원됨 | 지원됨 | 지원됨 | 지원됨 | 지원되지 않음 |
확장성 | |||||
사용자 정의 트리거 작성 | 지원됨 | 지원되지 않음 | 지원되지 않음 | 지원되지 않음 | 지원되지 않음 |
Spin을 개선하는 데 관심을 가져주셔서 기쁩니다! 감사합니다!
매주 월요일 오전 2시 30분(UTC)과 오후 9시(교대로)에 만나 스핀 프로젝트 회의에서 스핀 문제, 로드맵 및 아이디어를 논의합니다. 회의 날짜를 보려면 이 Google 캘린더를 구독하세요.
Spin 프로젝트 회의 안건은 공개 문서입니다. 문서에는 각 회의 날짜와 시간, Zoom 링크, 그날의 토론 주제가 포함된 롤링 안건이 포함되어 있습니다. 또한 각 회의의 회의록과 녹화 링크도 확인할 수 있습니다. 프로젝트 미팅에서 시연하거나 논의하고 싶은 내용이 있으면 안건에 추가하시기 바랍니다.
여기에서 기여 가이드를 찾을 수 있습니다.
Fermyon은 또한 Discord 서버를 호스팅하여 Spin: Discord 서버에 대해 논의합니다.
Twitter에서 우리를 팔로우하세요: @spinframework
질문을 하고, 도움을 받고, Spin으로 하고 있는 멋진 일들을 자랑할 수 있는 Discord 서버의 Spin 커뮤니티에 가입하실 수 있습니다!