OPAC slides
Introduction
- Caveat: I'm not a Rust expert. I'm just relaying what I've learned in the past two years of working with Rust in Oracle.
- Rust is a relatively new language, designed to be memory-safe
- Low-level, compiled, no VM, no GC - like C/C++
- Syntactically similar to Go
- Has a very strict memory model
- Steep learning curve
Why Rust?
- Strict memory model nearly eliminates all memory-based bugs (null pointers, accessing freed/invalid memory, memory leaks, concurrent memory updates/reads) - finds issues at compile-time
- Fast and efficient as C/C++
- Good higher-level constructs (containers, etc)
- Good tooling and environment (VSCode)
- A lot of industry momentum - Amazon, Microsoft, Google (3M lines of rust code in android codebase)
- Active community
Why not Rust?
- Immature language means many updates/changes
- Difficult to learn, even for experienced engineers (borrow checker is maddening)
- Heavy dependency on 3rd-party libraries (core is missing things like http, async runtime, etc)
- Async rust is problematic
- Not enough people competent in Rust (small talent pool)
- Java / GraalVM are preferred within Oracle
- Will it be around in the long run?
Where to use or not use Rust in Oracle
- Any use will have to be justified to corporate architecture / java groups
- Good for:
- Client SDKs/APIs
- New features in existing C/C++ codebases
- New, smaller projects where VM/GC is problematic and memory safety is paramount
- Embedded systems (not much at Oracle?)
- Not for:
- Anywhere that VM/GC (java, graal, go) is usable
- Replacing existing C/C++ in large/established projects
See also:
- Rust official website https://www.rust-lang.org/
- This week in Rust https://this-week-in-rust.org/
- Rust Foundation https://rustfoundation.org
- Rust book https://doc.rust-lang.org/book/
- Rust jobs report https://filtra.io/rust/jobs-report/jan-25
- Oracle internal competitive technologies list https://confluence.oraclecorp.com/confluence/display/CORPARCH/Competitive+Technologies
- Oracle #rust slack channel - 212 members: https://oracle.enterprise.slack.com/archives/C1GN2B6MD
- Podcast discussion with Lars Bergstrom (Director of Engineering at Google) https://rustacean-station.org/episode/lars-bergstrom/
- "Microsoft is Getting Rusty" with Mark Russinovich, CTO Microsoft Azure https://www.youtube.com/watch?v=1VgptLwP588
- 2024 State of Rust survey results https://blog.rust-lang.org/2025/02/13/2024-State-Of-Rust-Survey-results.html