เรียนรู้วิธีใช้ปมในโครงการของคุณ
ติดตาม ReadMe ในที่เก็บของโครงการบน GitHub
อ่านเอกสาร API
ชมการพูดคุยเบื้องต้นในการประชุม Rust Nation 2023 ล่าสุดในลอนดอน
คุณยังสามารถเข้าร่วมการสนทนาที่เป็นมิตรในช่อง Zulip ของเรา
โปรดทราบว่า crux นั้นเป็นการทดลองและกำลังอยู่ระหว่างการพัฒนาที่ใช้งานอยู่ (อาจยังไม่พร้อมสำหรับการใช้งานในแอพการผลิต) อย่างไรก็ตามสาขาหลักควรทำงานได้ดีเสมอและเราจะพยายามเก็บตัวอย่างและเอกสารให้ทันสมัยในขณะที่เราไป เรา คิด ว่าตอนนี้ API ได้ตัดสินแล้วมีการเล่น! -
แนวคิดทางสถาปัตยกรรมพื้นฐานคือการแยกงานการคำนวณที่บริสุทธิ์อย่างเข้มงวดจากงานที่ทำให้เกิดผลข้างเคียง สิ่งนี้คล้ายกับวิธีการทำงานของ Elm
ในแผนภาพด้านบน "แกน" ด้านในถูกรวบรวมและเชื่อมโยงกับ "เชลล์" ด้านนอกในแต่ละแพลตฟอร์มเป็นไลบรารี:
ในความเป็นจริงเนื่องจาก WebAssembly (WASM) เป็นหนึ่งในเป้าหมายการรวบรวมแกน จึงต้อง คงอยู่ข้างเคียงข้างฟรีเนื่องจากธรรมชาติของ Sandboxed ของสภาพแวดล้อมรันไทม์ WASM
ด้วยเหตุนี้แกนจึงแยกได้อย่างสมบูรณ์และปลอดภัยต่อการโจมตีโซ่อุปทานซอฟต์แวร์เนื่องจากไม่มีการเข้าถึง API ภายนอกใด ๆ สิ่งที่ทำได้คือทำการคำนวณบริสุทธิ์และรักษาสถานะภายใน
ตามสถาปัตยกรรม ELM หลักจะกำหนดประเภทส่วนประกอบสำคัญภายในแอปพลิเคชัน:
Event - enum อธิบายเหตุการณ์ที่แกนสามารถจัดการได้Model - อธิบายสถานะภายในของแอปพลิเคชันViewModel - แสดงถึงข้อมูลที่ควรแสดงต่อผู้ใช้ อดีตทั้งสองถูกเชื่อมโยงเข้าด้วยกันโดยฟังก์ชั่น update ซึ่งคุ้นเคยจาก Elm, Redux หรือสถาปัตยกรรมการจัดหาเหตุการณ์อื่น ๆ ซึ่งปัจจุบันมีลายเซ็นประเภทนี้:
fn update (
& self ,
event : Event ,
model : & mut Model ,
capabilities : & Capabilities ,
) งานของฟังก์ชั่น update คือการประมวลผล Event อัปเดตโมเดลตามนั้นและอาจขอผลข้างเคียงบางอย่างโดยใช้ความสามารถ
"เชลล์" ของแพลตฟอร์ม Enclosing นั้นเขียนขึ้นโดยใช้ภาษาที่เหมาะสมสำหรับแพลตฟอร์มและทำหน้าที่เป็นสภาพแวดล้อมรันไทม์ภายในงานที่ไม่ได้ทำทั้งหมดจะดำเนินการ จากมุมมองของแกนกลางเชลล์เป็นแพลตฟอร์มที่แกนทำงาน
หลังจากสถาปัตยกรรม ELM อินเทอร์เฟซที่มีหลักเป็นข้อความ ซึ่งหมายความว่าแกนกลางไม่สามารถทำสิ่งอื่นใดนอกจากการคำนวณที่บริสุทธิ์ ในการทำงานใด ๆ ที่สร้างผลข้างเคียง (เช่นการเรียก HTTP หรือการสร้างหมายเลขสุ่ม) แกนจะต้องขอจากเชลล์
แกนกลางมีแนวคิดของความสามารถ-อินเทอร์เฟซที่นำกลับมาใช้ใหม่ได้สำหรับผลข้างเคียงทั่วไป-รองรับไฟและฟอเรตคำขอ/การตอบสนองและความหมายสตรีมมิ่ง
ความสามารถในตัวเพียงอย่างเดียวคือ Render แต่ที่เก็บนี้มีความสามารถไม่กี่อย่างในขั้นตอนต่าง ๆ ของวุฒิภาวะและคุณสามารถเขียนของคุณเองได้อย่างง่ายดายหากคุณต้องการ:
Render (ขอให้ UI แสดง ViewModel)-แหล่งที่มาในตัวของ crux_core ร้องขอเท่านั้นHttp (การใช้งาน HTTP แบบเต็มตาม Surf API) - แหล่งที่มา, ลัง, คำขอ/การตอบสนองKeyValue (API คีย์-ค่าพื้นฐาน)-แหล่งที่มา, ลัง, คำขอ/การตอบสนองTime (รับเวลาปัจจุบันแจ้งให้ทราบหลังจากระยะเวลาแจ้งทันที) - แหล่งที่มา, ลัง, คำขอ/การตอบกลับPlatform (รับแพลตฟอร์มปัจจุบัน) - แหล่งที่มา, ลัง, คำขอ/การตอบกลับSSE (เหตุการณ์เซิร์ฟเวอร์พื้นฐาน)-แหล่งที่มาคำขอ/สตรีมมิ่งPubSub (Pub Sub พร้อมสตรีมมิ่ง) - แหล่งที่มาคำขอ/ตอบกลับ/สตรีมมิ่งTimer (ตัวจับเวลาเริ่มต้นเสร็จสิ้นการยกเลิก) - แหล่งที่มาการร้องขอ/ตอบกลับ/สตรีมมิ่งDelay - ส่วนหนึ่งของการสอนในหนังสือRed Badger เป็นที่ปรึกษาด้านผลิตภัณฑ์ดิจิตอลที่ได้รับความไว้วางใจจาก Blue Chips และ Global Brands การออกแบบผลิตภัณฑ์และสายเลือดทางเทคนิคของเราช่วยให้เราสามารถสร้างผลิตภัณฑ์ดิจิตอลที่มีผลกระทบสูงที่ลูกค้าต้องการ เราใช้วิธีการทางวิศวกรรมสมัยใหม่เพื่อส่งมอบการเปลี่ยนแปลงที่ยั่งยืน และฝังความสามารถดิจิทัลเพื่อเพิ่มพลังนวัตกรรมอย่างต่อเนื่อง
Zulip เป็นแอพแชทของทีมโอเพนซอร์ซที่ออกแบบมาเพื่อให้การสนทนาทั้งแบบสดและแบบอะซิงโครนัส
Zulip Sponsor Crux โดยการจัดหาเซิร์ฟเวอร์ Zulip ของเรา - ขอบคุณ Zulip!