7 poin oleh leegeunhyeok 2025-11-05 | 5 komentar | Bagikan ke WhatsApp

Memperkenalkan Craby, alat yang memungkinkan modul berbasis Rust di React Native diintegrasikan dengan TurboModule C++ murni.

Lihat dokumentasi: https://craby.rs
GitHub: https://github.com/leegeunhyeok/craby

Apa itu Craby?

Craby adalah alat pengembangan yang memungkinkan Anda menulis modul native berkinerja tinggi dengan Rust sambil mempertahankan type safety di seluruh stack TypeScript - Rust - C++. Tanpa layer spesifik platform TurboModule React Native (ObjCTurboModule/JavaTurboModule), Craby terintegrasi langsung dengan TurboModule C++ murni untuk menghasilkan performa terbaik.

Performa

Perbandingan benchmark dengan solusi lain (lihat benchmark):

  • 20-80x lebih cepat dibanding ExpoModules
  • 15-20x lebih cepat dibanding TurboModules standar
  • 25~30% lebih cepat dibanding NitroModules (berbasis Swift/Kotlin, bukan C++)

Ini adalah pengujian throughput ekstrem (100 ribu kali pemanggilan), dan hasilnya dapat berbeda di lingkungan penggunaan nyata, jadi mohon jadikan ini sebagai referensi saja.

Fitur utama

  • Pembuatan kode otomatis: jika API didefinisikan di TypeScript, binding Rust/C++ akan dibuat secara otomatis
  • Type safety: pengecekan tipe saat kompilasi antara TypeScript, Rust, dan C++
  • Zero-Cost FFI: meminimalkan overhead interoperabilitas Rust-C++ melalui cxx
  • API sederhana: cukup fokus pada implementasi Rust, sisanya ditangani oleh Craby

Contoh penggunaan

// Definisi skema modul (TypeScript)  
interface Spec extends NativeModule {  
  add(a: number, b: number): number;  
}  
// Implementasi modul sebenarnya (Rust)  
#[craby_module]  
impl CalculatorSpec for Calculator {  
    fn add(&mut self, a: Number, b: Number) -> Number {  
        a + b  
    }  
}  

Semua kode bridging dibuat secara otomatis oleh Craby, sehingga pengguna hanya perlu mengimplementasikan modul sebenarnya (Rust).

Untuk detail lebih lanjut, silakan lihat dokumentasi/repositori GitHub, dan berbagai masukan selalu kami sambut!

5 komentar

 
bangdy 2025-11-07

Proyek yang bagus. Sudah saya beri bintang!!

 
gargoyle92 2025-11-05

Monster Geunhyeok…

 
mindok 2025-11-05

Benar-benar banyak sekali orang yang luar biasa..

 
skageektp 2025-11-05

Wah... boleh tahu apa yang menjadi alasan Anda membuat alat ini? Saya juga ingin mencoba membuat hal seperti ini, jadi saya penasaran biasanya orang-orang punya alasan apa sampai membuatnya.

 
leegeunhyeok 2025-11-06

Baru-baru ini muncul kebutuhan untuk beralih ke New Architecture, dan saat menelusuri implementasi internal TurboModule, semuanya bermula dari ide, “kalau didekati seperti ini, sepertinya cukup punya potensi!”