Pelajari cara menggunakan inti dalam proyek Anda.
Ikuti readme di repositori proyek di GitHub.
Baca dokumentasi API
Tonton pembicaraan pengantar di Konferensi Rust Nation 2023 baru -baru ini di London.
Anda juga dapat bergabung dengan percakapan yang ramah di saluran Zulip kami.
Perhatikan, bahwa inti adalah eksperimental dan saat ini sedang dalam pengembangan aktif (mungkin belum siap digunakan dalam aplikasi produksi dulu). Namun, cabang utama harus selalu bekerja dengan baik, dan kami akan mencoba untuk menjaga contoh dan dokumentasi tetap up to date saat kami pergi. Kami berpikir bahwa API sekarang telah menetap, jadi ajak bermain! :-)
Konsep arsitektur mendasar adalah pemisahan ketat dari tugas komputasi murni dari tugas yang menyebabkan efek samping. Ini mirip dengan cara kerja Elm.
Dalam diagram di atas, "inti" dalam disusun dan ditautkan ke "shell" luar pada setiap platform sebagai perpustakaan:
Faktanya, karena WebAssembly (WASM) adalah salah satu target kompilasi, inti harus tetap bebas efek samping, karena sifat kotak pasir dari lingkungan runtime WASM.
Dengan demikian, inti sepenuhnya terisolasi dan aman terhadap serangan rantai pasokan perangkat lunak, karena tidak memiliki akses ke API eksternal. Yang bisa dilakukan hanyalah melakukan perhitungan murni dan menjaga keadaan internal.
Mengikuti arsitektur ELM, inti mendefinisikan jenis komponen kunci dalam aplikasi:
Event - enum yang menggambarkan peristiwa yang dapat ditangani intiModel - Menjelaskan keadaan internal aplikasiViewModel - mewakili informasi yang harus ditampilkan kepada pengguna Mantan dua diikat bersama oleh fungsi update , akrab dari ELM, Redux atau arsitektur sumber acara lainnya, yang saat ini memiliki tanda tangan jenis ini:
fn update (
& self ,
event : Event ,
model : & mut Model ,
capabilities : & Capabilities ,
) Pekerjaan fungsi update adalah memproses suatu Event , memperbarui model yang sesuai, dan berpotensi meminta beberapa efek samping menggunakan kemampuan.
Platform yang melampirkan "shell" asli ditulis menggunakan bahasa yang sesuai untuk platform, dan bertindak sebagai lingkungan runtime di mana semua tugas non-murni dilakukan. Dari perspektif inti, shell adalah platform di mana inti berjalan.
Mengikuti arsitektur ELM, antarmuka dengan inti berdasarkan pesan. Ini berarti bahwa inti tidak dapat melakukan apa pun selain perhitungan murni. Untuk melakukan tugas apa pun yang membuat efek samping (seperti panggilan HTTP atau pembuatan nomor acak), inti harus memintanya dari shell.
Inti memiliki konsep kemampuan-antarmuka yang dapat digunakan kembali untuk efek samping umum-mendukung pemadam kebakaran, permintaan/respons, dan semantik streaming.
Satu-satunya kemampuan bawaan adalah Render . Tetapi repositori ini berisi beberapa kemampuan pada berbagai tahap kedewasaan, dan Anda dapat dengan mudah menulis sendiri jika Anda mau:
Render (mintalah UI untuk membuat viewmodel)-Sumber, built-in ke crux_core , hanya meminta permintaanHttp (implementasi http penuh berdasarkan API surf) - Sumber, Crate, Request/ResponseKeyValue (API Toko Nilai Kunci Dasar)-Sumber, Crate, Request/ResponseTime (dapatkan waktu saat ini, beri tahu setelah durasi, beri tahu saat ini) - sumber, peti, permintaan/responsPlatform (Dapatkan Platform Saat Ini) - Sumber, Peti, Permintaan/ResponsSSE (Acara Sent Server Dasar)-Sumber, Permintaan/StreamingPubSub (pub sub dengan streaming) - Sumber, permintaan/respons/streamingTimer (Timer Start, Finish, Cancel) - Sumber, Permintaan/Respons/StreamingDelay - bagian dari tutorial dalam buku iniRed Badger adalah konsultan produk digital yang dipercaya oleh chip biru dan merek global. Desain produk kami dan silsilah teknis memungkinkan kami untuk membuat produk digital produk digital yang diinginkan pelanggan. Kami menggunakan pendekatan rekayasa modern untuk memberikan perubahan berkelanjutan. Dan menyematkan kemampuan digital untuk mendorong inovasi berkelanjutan.
Zulip adalah aplikasi obrolan tim modern open-source yang dirancang untuk menjaga percakapan langsung dan asinkron terorganisir.
Zulip Sponsor Crux dengan menyediakan server Zulip kami - terima kasih Zulip!