7 Punkte von leegeunhyeok 2025-11-05 | 5 Kommentare | Auf WhatsApp teilen

Wir stellen Craby vor, ein Tool, das die Integration von Rust-basierten Modulen mit reinen C++ TurboModules in React Native ermöglicht.

Zur Dokumentation: https://craby.rs
GitHub: https://github.com/leegeunhyeok/craby

Was ist Craby?

Craby ist ein Entwicklungswerkzeug, mit dem sich leistungsstarke native Module in Rust schreiben lassen, während die Typsicherheit über den gesamten Stack aus TypeScript, Rust und C++ hinweg erhalten bleibt. Ohne die plattformspezifischen Layer von React Native TurboModule (ObjCTurboModule/JavaTurboModule) integriert es sich direkt mit reinen C++ TurboModules und holt so die bestmögliche Performance heraus.

Performance

Benchmark-Vergleich mit anderen Lösungen (Benchmark ansehen):

  • 20- bis 80-mal schneller als ExpoModules
  • 15- bis 20-mal schneller als Standard-TurboModules
  • 25–30 % schneller als NitroModules (auf Swift/Kotlin-Basis, nicht C++)

Dabei handelt es sich um einen extremen Durchsatztest (100.000 Aufrufe); in realen Einsatzumgebungen können die Ergebnisse abweichen, daher bitte nur als Referenz verstehen.

Hauptfunktionen

  • Automatische Codegenerierung: Wenn die API in TypeScript definiert wird, werden Rust/C++-Bindings automatisch erzeugt
  • Typsicherheit: Compile-Time-Typprüfung zwischen TypeScript, Rust und C++
  • Zero-Cost FFI: Minimierter Overhead bei der Rust-C++-Interoperabilität über cxx
  • Einfache API: Konzentriere dich nur auf die Rust-Implementierung, den Rest übernimmt Craby

Anwendungsbeispiel

// 모듈 스키마 정의 (TypeScript)  
interface Spec extends NativeModule {  
  add(a: number, b: number): number;  
}  
// 실제 모듈 구현 (Rust)  
#[craby_module]  
impl CalculatorSpec for Calculator {  
    fn add(&mut self, a: Number, b: Number) -> Number {  
        a + b  
    }  
}  

Den gesamten Bridging-Code erzeugt Craby automatisch; Nutzer müssen nur das eigentliche Modul in Rust implementieren.

Weitere Details finden sich in der Dokumentation bzw. im GitHub-Repository, und Feedback ist jederzeit willkommen!

5 Kommentare

 
bangdy 2025-11-07

Tolles Projekt. Ich habe einen Stern vergeben!!

 
gargoyle92 2025-11-05

Monster Geunhyeok …

 
mindok 2025-11-05

Es gibt wirklich unglaublich viele beeindruckende Menschen..

 
skageektp 2025-11-05

Wow … darf ich fragen, was der Auslöser dafür war, dieses Tool zu entwickeln? Ich würde auch gern so etwas bauen und habe mich gefragt, welche Anlässe andere normalerweise dafür haben.

 
leegeunhyeok 2025-11-06

Kürzlich ergab sich die Situation, dass wir auf die New Architecture umsteigen mussten. Während ich mir die interne Implementierung von TurboModule angesehen habe, entstand aus der Idee „Wenn man so herangeht, könnte das durchaus Potenzial haben“ der Anfang!