Spin เป็นเฟรมเวิร์กสำหรับการสร้าง ปรับใช้ และรันไมโครเซอร์วิสบนคลาวด์ที่รวดเร็ว ปลอดภัย และประกอบได้ด้วย WebAssembly
Spin เป็นเฟรมเวิร์กโอเพ่นซอร์สสำหรับการสร้างและรันไมโครเซอร์วิสบนคลาวด์ที่รวดเร็ว ปลอดภัย และคอมไพล์ได้ด้วย WebAssembly โดยมีเป้าหมายที่จะเป็นวิธีที่ง่ายที่สุดในการเริ่มต้นใช้งานไมโครเซอร์วิส WebAssembly และใช้ประโยชน์จากการพัฒนาล่าสุดในโมเดลส่วนประกอบ WebAssembly และรันไทม์ Wasmtime
Spin นำเสนอ CLI ง่ายๆ ที่ช่วยคุณสร้าง แจกจ่าย และดำเนินการแอปพลิเคชัน และในส่วนถัดไป เราจะเรียนรู้เพิ่มเติมเกี่ยวกับแอปพลิเคชัน Spin และวิธีการเริ่มต้นใช้งาน
ดูหน้าติดตั้ง Spin ของเอกสารประกอบ Spin สำหรับคำแนะนำโดยละเอียดเกี่ยวกับการติดตั้งและกำหนดค่า Spin แต่โดยสรุปให้ใช้คำสั่งต่อไปนี้:
curl -fsSL https://developer.fermyon.com/downloads/install.sh | ทุบตี sudo mv ./spin /usr/local/bin/spin
หรือคุณสามารถสร้าง Spin จากแหล่งที่มาได้
หากต้องการเริ่มต้นเขียนแอป ให้ทำตามคำแนะนำเริ่มต้นอย่างรวดเร็ว จากนั้นทำตามคำแนะนำภาษา Rust, JavaScript, Python หรือ Go และคำแนะนำในการเขียนแอปพลิเคชัน Spin
ด้านล่างนี้เป็นตัวอย่างการใช้ spin
CLI เพื่อสร้างแอปพลิเคชัน Spin ใหม่ ในการรันตัวอย่าง คุณจะต้องติดตั้งเป้าหมาย wasm32-wasi
สำหรับ Rust
$ สนิมเป้าหมายเพิ่ม wasm32-wasi
ขั้นแรก ให้รันคำสั่ง spin new
เพื่อสร้างแอปพลิเคชัน Spin จากเทมเพลต
# สร้างแอปพลิเคชัน Spin ใหม่ชื่อ 'hello-rust' โดยใช้เทมเพลต Rust http โดยยอมรับค่าเริ่มต้นทั้งหมด $ spin new --accept-defaults -t http-rust hello-rust
การรันคำสั่ง spin new
จะสร้างไดเร็กทอรี hello-rust
พร้อมไฟล์ที่จำเป็นทั้งหมดสำหรับแอปพลิเคชันของคุณ เปลี่ยนเป็นไดเร็กทอรี hello-rust
และสร้างแอปพลิเคชันด้วย spin build
จากนั้นรันในเครื่องด้วย spin up
:
# คอมไพล์เป็น Wasm โดยดำเนินการคำสั่ง `build` $ spin build การดำเนินการคำสั่ง build สำหรับส่วนประกอบ hello-rust: cargo build --target wasm32-wasi --release เสร็จสิ้นการเผยแพร่เป้าหมาย [เพิ่มประสิทธิภาพ] ใน 0.03 วินาที รันคำสั่ง build สำหรับส่วนประกอบ Spin สำเร็จ # รันแอปพลิเคชันในเครื่อง $ หมุนขึ้น การบันทึกส่วนประกอบ 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 ขาออก | รองรับ | รองรับ | รองรับ | รองรับ | รองรับ |
AI ไร้เซิร์ฟเวอร์ | รองรับ | รองรับ | รองรับ | รองรับ | ไม่รองรับ |
ความสามารถในการขยาย | |||||
การเขียนทริกเกอร์แบบกำหนดเอง | รองรับ | ไม่รองรับ | ไม่รองรับ | ไม่รองรับ | ไม่รองรับ |
เรามีความยินดีที่คุณสนใจที่จะทำให้ Spin ดีขึ้น! ขอบคุณ!
ทุกวันจันทร์ เวลา 14.30 น. UTC และ 21.00 น. UTC (สลับกัน) เราจะพบกันเพื่อหารือเกี่ยวกับปัญหา Spin แผนงาน และแนวคิดในการประชุม Spin Project ของเรา สมัครรับ Google Calendar นี้สำหรับวันประชุม
วาระการประชุมโครงการ Spin เป็นเอกสารสาธารณะ เอกสารประกอบด้วยวาระการประชุมพร้อมวันที่และเวลาของการประชุมแต่ละครั้ง ลิงก์ Zoom และหัวข้อการอภิปรายสำหรับวันนั้น คุณจะพบรายงานการประชุมสำหรับการประชุมแต่ละครั้งและลิงก์ไปยังการบันทึก หากคุณมีสิ่งที่ต้องการสาธิตหรือหารือในการประชุมโครงการ เราขอแนะนำให้คุณเพิ่มสิ่งดังกล่าวเข้าไปในวาระการประชุม
คุณสามารถดูคู่มือการมีส่วนร่วมได้ที่นี่
Fermyon ยังโฮสต์เซิร์ฟเวอร์ Discord ซึ่งเราจะพูดคุยเกี่ยวกับ Spin: เซิร์ฟเวอร์ Discord
ติดตามเราได้ที่ Twitter: @spinframework
คุณสามารถเข้าร่วมชุมชน Spin ได้ในเซิร์ฟเวอร์ Discord ของเรา ซึ่งคุณสามารถถามคำถาม รับความช่วยเหลือ และอวดสิ่งเจ๋งๆ ที่คุณกำลังทำกับ Spin!