Migrating RediSearch from C to Rust - Challenges and Techniques
Talkat RustConf 2026 · on Wednesday, 2026-09-09· at 16:00· Room 510bd | Palais des Congrès de Montréal, Palais des Congrès de Montréal·
summary
RediSearch migrates incrementally: a consultancy ports modules, creates FFI with bindgen and cbindgen, and open sources a custom tool Chatteren. The codebase sees a net 34% C reduction while C grows 30% from new features, tests multiply 3x and CI/build/test times improve 3x via sccache and cross-language LTO, and fuzzing is added. A central RLOOKUP port preserves C layout with pinned, self‑referential fields and replaces an intrusive linked list with a Vec. Engineers embed in feature teams to synchronize work and avoid feature-driven C rewrites.
AI-written summary · about
chapters (11)
- 0:00Introduction to talk
- 1:11What is RediSearch
- 4:41Why migrate from C to Rust
- 7:11Role of Mainmatter in migration
- 9:20Four-step migration process
- 13:31War story: RLOOKUP module
- 22:45Hardest problem is people
- 23:47Hybrid search feature impact
- 29:21Strategy pivot and team embedding
- 32:31Enabling work and feedback flywheel
- 36:22Q&A session
related talks
30mRewrite, optimize, repeat: Our journey porting a triemap from C to Rust
28mC2Rust: Migrating Legacy Code to Rust
54mUnwrap()Ing Rust on Embedded Linux
40mRust’s approach of getting things right
41mWe can have nice things
22mFearless Refactoring
26mMoving to modern languages in long-living projects
34mSearch Engine in production with Rust
