แพลตฟอร์ม Tokio เวอร์ชัน 1.13.0 ได้รับการเผยแพร่แล้ว ออกแบบมาเพื่อสร้างแอปพลิเคชัน Rust ประสิทธิภาพสูงโดยใช้สถาปัตยกรรมแบบ Event-Driven ที่รองรับการประมวลผลคำขอเครือข่ายแบบมัลติเธรดและแบบอะซิงโครนัส โปรเจกต์นี้เขียนด้วย Rust และเผยแพร่ภายใต้ใบอนุญาต MIT เวอร์ชันใหม่นี้ประกอบด้วยเอกสารประกอบที่ขยายเพิ่มเติมและการแก้ไขเพิ่มเติมหลายประการสำหรับระบบย่อยเครือข่ายและระบบซิงโครไนซ์
โตเกียวมีส่วนประกอบดังต่อไปนี้:
- ตัวกำหนดตารางงาน I/O แบบมัลติเธรดที่ทำงานโดยการจัดสรรทรัพยากรให้กับเธรดเท่านั้น (ในบริบทของการดำเนินการแบบขนาน) ที่ตรงตามเงื่อนไขเฉพาะ จึงหลีกเลี่ยงเงื่อนไขการแข่งขันที่มักเกิดขึ้นในโปรแกรมที่เขียนด้วยภาษาที่ไม่มีการจัดการหน่วยความจำและทรัพยากรที่ปลอดภัย
- แบ็กเอนด์เพื่อให้แน่ใจว่ามีความเข้ากันได้กับกลไกการมัลติเพล็กซ์การเชื่อมต่อที่จัดทำโดยระบบปฏิบัติการต่างๆ เช่น epoll, kqueue และ IOCP
- ประเภทและการผูกที่ใช้ซ็อกเก็ต TCP และ UDP แบบอะซิงโครนัส
- เครื่องมือสำหรับดำเนินการงานแบบอะซิงโครนัส รวมถึงไพรเมทีฟการซิงโครไนซ์ ช่องทาง และการหมดเวลา
- API สำหรับการดำเนินการ I/O แบบอะซิงโครนัส ครอบคลุมซ็อกเก็ต TCP/UDP การดำเนินการไฟล์ สิ่งอำนวยความสะดวกการจัดการสัญญาณและกระบวนการ
นักพัฒนาเน้นย้ำคุณลักษณะของผลิตภัณฑ์ เช่น ประสิทธิภาพสูงที่เทียบได้กับการทำงานแบบ bare-metal ความสามารถในการปรับขนาดที่ยอดเยี่ยม และความน่าเชื่อถือที่รับรองโดยระบบประเภทและโมเดลการทำงานพร้อมกันของภาษา Rust
คลังข้อมูลนี้มีผู้ร่วมให้ข้อมูลมากกว่า 500 ราย รวมถึงตัวแทนจาก AWS, Azure, Comcast, Dropbox และ Facebook แหล่งข้อมูลที่ Tokio อ้างอิงประกอบด้วย:
- hyper: การใช้งาน HTTP/1 และ HTTP/2 ที่รวดเร็วและปลอดภัยสำหรับ Rust
- warp: เฟรมเวิร์กน้ำหนักเบาสำหรับ เว็บเซิร์ฟเวอร์โดยมุ่งเน้นที่ความเร็วในการทำงานสูง
- การติดตาม: กรอบการทำงานสำหรับการติดตามและการวินิจฉัยในระดับแอปพลิเคชันพร้อมการรองรับแบบอะซิงโครนัส
- rdbc: ไลบรารีสำหรับเชื่อมต่อฐานข้อมูล MySQL, Postgres และ SQLite เข้ากับผลิตภัณฑ์ที่เขียนด้วยภาษาการเขียนโปรแกรม Rust
- ไบต์: ยูทิลิตี้สำหรับการทำงานกับไบต์ รวมถึงบัฟเฟอร์ไบต์ที่มีประสิทธิภาพ
ที่มา: opennet.ru
