SlideShare a Scribd company logo
Why Rust?
With Edd Barrett
A Little About Me
e ResearchAssociate @King’s College London
e Former postgrad of University of Kent.
e OpenBSD Developer (ports)
@ebarrett@mastodon.social @vext01
Rust
C and C++
C and C++
C
e 1972
e Dennis Ritchie, Bell Labs
C++
e 1985
e Bjarne Stroustrup
Both “systems” languages.
C and C++ arePopular Languages
https://www.tiobe.com/tiobe-
index/
C and C++ arePopular Languages
https://thenewstack.io/evolve -die-popular -programming-languages-confront-newcom ers-tiobe-
index/
The problem languages like C and C++
The problem languages like C and C++
Unsafe
The problem languages like C and C++
Unsafe
e Memorysafety
e Threadsafety
The problem languages like C and C++
Unsafe
e Memorysafety
e Threadsafety
Memory Safety
* s ) {v o i d d o _ s t u f f ( c h a r
. . .
i f ( e r r o r )
f r e e ( s ) ;
}
i n t m a i n ( v o i d ) {
c h a r * s = m a l l o c ( 1 6 ) ;
s t r n c p y ( s , " h e l l o " , 1 6 ) ;
p r i n t f ( " s= ’ s’ n " , s ) ;
d o _ s t u f f ( s ) ;
p r i n t f ( " s= ’ s’ n " , s ) ; / / < - - Use a f t e r f r e e !
r e t u r n ( EXIT_ SUCCESS ) ;
}
Kinds of Memory Error
e Useafter free
e Double free
e Buffer overflow
e Dangling pointer
e Freeinganinvalidaddress
Experiencedprogrammers makethesemistakes!
Memory Errors = Undefined Behaviour
What should happen afterwards is notdefined!
e Program may continue to work OK (you got
lucky)
e Program may crash
e Program my continue, but behave differently
Memory Safety
$ ./use-after -free
s=’hello ’
s=’ ’
Security vulnerabilities
*Not anaccuratedepiction of a hacker
https://pixabay.com/phot os/ hacker -attack-mask-internet-2883632/
Hackers!
“Hackers” exploit memory errors
Often they can“persuade” abrokenprogram to do
their bidding
What Hackers Want
What Hackers Want
e To steal your sensitive data.
What Hackers Want
e To steal your sensitive data.
e To run naughty programs on your computer.
How bad is the problem?
CVEs
Common Vulnerability and Exposures
Database
https://nvd.nist.gov/ vuln/detail/CVE -2019-8225
CVE Statistics: Cifuentes andBierman
http:
//drops.dagstuhl.de/opus/volltexte/2019/10546/
CVE Statistics: Cifuentes andBierman
For the five years from 2013 to 2017: 5,899
buffer errors
(That’s about 21%of the data)
Average total cost of a data breach:
US$3.86 million
Other Statistics: Alex Gaynor
https://alexgaynor.net/2019/aug/12/
introduction-to-memory-unsafety-for-vps-of-engineering/
Other Statistics: Alex Gaynor
A recent study found that 60-70% of vul-
nerabilities in iOS and macOS are caused
by memory unsafety.
Microsoft estimates that 70% of all vulnera-
bilities in their products over the last decade
have been caused by memoryunsafety.
Google estimated that 90% of Android vul-
nerabilities arememoryunsafety.
How bad is the problem?
Pretty bad!
What can wedo?
What can wedo?
e Detect and fix using dynamic/static analysis
What can wedo?
e Detect and fix using dynamic/static analysis
e OS-level mitigations
What can wedo?
e Detect and fix using dynamic/static analysis
e OS-level mitigations
e Usea“managed” language
e GarbageCollection :(
Mozilla
Firefox
Rust
Rust’s Motivation
Rust’s rich type system and owner- ship
model guarantee memory-safety and
thread-safety, and enable you to eliminate
many classes of bugs at compile-time.
(+ performance + productivity)
Example: Use after Free in Rust
fn do_stuff(s: String) {
...
if error {
drop(s); // Not necessary.
}
}
fn main () {
let s = String ::from("hello");
println!("s=’{}’", s);
do_stuff(s);
println!("s=’{}’", s);
}
Example: Use after Free in Rust
e r r o r [ E0382 ] : borrow o f moved v a l u e : ‘s‘
l e t s
- - > s r c / m a i n . r s : 1 2 : 2 4
|
8 |
|
|
|
= S t r i n g : : from ( " h e l l o " ) ;
- move o c c u r s b e c a u s e ‘s‘h a s t y p e ‘s t d : :
s t r i n g : : S t r i n g ‘, which does n o t
i m p l e m e n t t h e ‘Copy ‘ t r a i t
d o _ s t u f f ( s ) ;
- v a l u e moved h e r e
p r i n t l n ! ( " s= ’{}’",
he r e
. . .
11 |
|
12 |
|
|
s ) ;
^ v a l u e borrowe d
a f t e r move
e r r o r : a b o r t i n g due t o p r e v i o u s e r r o r
Ownership
Ownership
Lifetimes
Rust’s Ownership and Lifetimes
Compile-time memorysafety without agarbage
collector.
Rust’s Ownership and Lifetimes
Compile-time memorysafety without agarbage
collector.
Secureand performant systemsprogramming!
The take away message
The take away message
With Rust, memoryerrors canbe(mostly) athing
of the past.
The take away message
With Rust, memoryerrors canbe(mostly) athing
of the past.
https://pixabay.com/photos/thumbs -up-thumb-hand-positive-
What else is good about Rust?
e Pretty good performance.
What else is good about Rust?
e Pretty good performance.
e Goodstandard library.
What else is good about Rust?
e Pretty good performance.
e Goodstandard library.
e Goodand safemulti-threading support.
What else is good about Rust?
e Pretty good performance.
e Goodstandard library.
e Goodand safemulti-threading support.
e Pretty portable.
What else is good about Rust?
e Pretty good performance.
e Goodstandard library.
e Goodand safemulti-threading support.
e Pretty portable.
e Thriving community and ecosystem.
Any Downsides?
Any Downsides?
e Rust is quite hard to learn.
e
e
e
Ownership/lifetimes are unfamiliar.
Error messages hard to understand.
Large language.
Any Downsides?
e Rust is quite hard to learn.
e
e
e
Ownership/lifetimes are unfamiliar.
Error messages hard to understand.
Large language.
e Rust is still young and changing.
Any Downsides?
e Rust is quite hard to learn.
e
e
e
Ownership/lifetimes are unfamiliar.
Error messages hard to understand.
Large language.
e Rust is still young and changing.
e Compile-times canbeslow.
Any Downsides?
e Rust is quite hard to learn.
e
e
e
Ownership/lifetimes are unfamiliar.
Error messages hard to understand.
Large language.
e Rust is still young and changing.
e Compile-times canbeslow.
e Somethings arequite hard in “safe” Rust.
e unsafe keyword
Resources
Website:
https://www.rust-lang.org/
GitHub:
https://github.com/rust-lang/rust
Try it out online:
https://play.rust-lang.org/
Learn:
https://doc.rust-lang.org/rust-by-example/

More Related Content

Similar to Why Rust? by Edd Barrett (codeHarbour December 2019) (20)

PDF
Le langage rust
Geeks Anonymes
 
PPTX
The Rust Programming Language vs The C Programming Language
jmquimosing
 
PDF
An introduction to Rust: the modern programming language to develop safe and ...
Claudio Capobianco
 
PDF
Rust "Hot or Not" at Sioux
nikomatsakis
 
PDF
Why_safe_programming_matters_and_why_Rust_.pdf
SandeepChoudhary674197
 
PDF
Rust: код может быть одновременно безопасным и быстрым, Степан Кольцов
Yandex
 
PDF
Is rust language really safe?
Nullbyte Security Conference
 
PPTX
What the &~#@&lt;!? (Pointers in Rust)
David Evans
 
PPT
Rust Programming Language
Jaeju Kim
 
PDF
Why rust?
Mats Kindahl
 
PDF
Rust and Eclipse
Max Bureck
 
PPTX
Introduction to Rust language programming
Rodolfo Finochietti
 
PDF
Rust and the coming age of high integrity languages
AdaCore
 
PDF
Intro to Rust 2019
Timothy Bess
 
ODP
Introduction To Rust
Knoldus Inc.
 
PDF
Rust in Action Systems programming concepts and techniques 1st Edition Tim Mc...
paaolablan
 
PDF
Степан Кольцов — Rust — лучше, чем C++
Yandex
 
PDF
Rust: Reach Further (from QCon Sao Paolo 2018)
nikomatsakis
 
PDF
Deep drive into rust programming language
Vigneshwer Dhinakaran
 
PPTX
Rust Intro
Arthur Gavkaluk
 
Le langage rust
Geeks Anonymes
 
The Rust Programming Language vs The C Programming Language
jmquimosing
 
An introduction to Rust: the modern programming language to develop safe and ...
Claudio Capobianco
 
Rust "Hot or Not" at Sioux
nikomatsakis
 
Why_safe_programming_matters_and_why_Rust_.pdf
SandeepChoudhary674197
 
Rust: код может быть одновременно безопасным и быстрым, Степан Кольцов
Yandex
 
Is rust language really safe?
Nullbyte Security Conference
 
What the &~#@&lt;!? (Pointers in Rust)
David Evans
 
Rust Programming Language
Jaeju Kim
 
Why rust?
Mats Kindahl
 
Rust and Eclipse
Max Bureck
 
Introduction to Rust language programming
Rodolfo Finochietti
 
Rust and the coming age of high integrity languages
AdaCore
 
Intro to Rust 2019
Timothy Bess
 
Introduction To Rust
Knoldus Inc.
 
Rust in Action Systems programming concepts and techniques 1st Edition Tim Mc...
paaolablan
 
Степан Кольцов — Rust — лучше, чем C++
Yandex
 
Rust: Reach Further (from QCon Sao Paolo 2018)
nikomatsakis
 
Deep drive into rust programming language
Vigneshwer Dhinakaran
 
Rust Intro
Arthur Gavkaluk
 

More from Alex Cachia (20)

PPTX
No Onions, No Tiers - An Introduction to Vertical Slice Architecture by Bill ...
Alex Cachia
 
PPTX
Supporting IT by David Meares
Alex Cachia
 
PPTX
OWASP Top 10 2021 - let's take a closer look by Glenn Wilson
Alex Cachia
 
PDF
If you think open source is not for you, think again by Jane Chakravorty
Alex Cachia
 
PDF
Chaos Engineering – why we should all practice breaking things on purpose by ...
Alex Cachia
 
PPTX
A brief overview of the history and practice of user experience by Ian Westbrook
Alex Cachia
 
PPTX
Return the carriage, feed the line by Aaron Taylor
Alex Cachia
 
PPTX
Treating your career path and training like leveling up in games by Raymond C...
Alex Cachia
 
PPTX
Digital forensics and giving evidence by Jonathan Haddock
Alex Cachia
 
PPTX
Software Security by Glenn Wilson
Alex Cachia
 
PPTX
Data Preparation and the Importance of How Machines Learn by Rebecca Vickery
Alex Cachia
 
PPTX
Issue with tracking? Fail that build! by Steve Coppin-Smith (codeHarbour Nove...
Alex Cachia
 
PPTX
Hack your voicemail with Javascript by Chris Willmott (codeHarbour October 2019)
Alex Cachia
 
PPTX
Developing for Africa by Jonathan Haddock (codeHarbour October 2019)
Alex Cachia
 
PDF
Revving up with Reinforcement Learning by Ricardo Sueiras
Alex Cachia
 
PPTX
Blockchain For Your Business by Kenneth Cox (codeHarbour July 2019)
Alex Cachia
 
PPTX
Seeking Simplicity by Phil Nash (codeHarbour June 2019)
Alex Cachia
 
PPTX
Sharing Data is Caring Data by Mark Terry (codeHarbour June 2019)
Alex Cachia
 
PPTX
Managing technical debt by Chris Willmott (codeHarbour April 2019)
Alex Cachia
 
PPTX
Telephone Systems and Voice over IP by Bob Eager (codeHarbour April 2019)
Alex Cachia
 
No Onions, No Tiers - An Introduction to Vertical Slice Architecture by Bill ...
Alex Cachia
 
Supporting IT by David Meares
Alex Cachia
 
OWASP Top 10 2021 - let's take a closer look by Glenn Wilson
Alex Cachia
 
If you think open source is not for you, think again by Jane Chakravorty
Alex Cachia
 
Chaos Engineering – why we should all practice breaking things on purpose by ...
Alex Cachia
 
A brief overview of the history and practice of user experience by Ian Westbrook
Alex Cachia
 
Return the carriage, feed the line by Aaron Taylor
Alex Cachia
 
Treating your career path and training like leveling up in games by Raymond C...
Alex Cachia
 
Digital forensics and giving evidence by Jonathan Haddock
Alex Cachia
 
Software Security by Glenn Wilson
Alex Cachia
 
Data Preparation and the Importance of How Machines Learn by Rebecca Vickery
Alex Cachia
 
Issue with tracking? Fail that build! by Steve Coppin-Smith (codeHarbour Nove...
Alex Cachia
 
Hack your voicemail with Javascript by Chris Willmott (codeHarbour October 2019)
Alex Cachia
 
Developing for Africa by Jonathan Haddock (codeHarbour October 2019)
Alex Cachia
 
Revving up with Reinforcement Learning by Ricardo Sueiras
Alex Cachia
 
Blockchain For Your Business by Kenneth Cox (codeHarbour July 2019)
Alex Cachia
 
Seeking Simplicity by Phil Nash (codeHarbour June 2019)
Alex Cachia
 
Sharing Data is Caring Data by Mark Terry (codeHarbour June 2019)
Alex Cachia
 
Managing technical debt by Chris Willmott (codeHarbour April 2019)
Alex Cachia
 
Telephone Systems and Voice over IP by Bob Eager (codeHarbour April 2019)
Alex Cachia
 
Ad

Recently uploaded (20)

PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
July Patch Tuesday
Ivanti
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
July Patch Tuesday
Ivanti
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Ad

Why Rust? by Edd Barrett (codeHarbour December 2019)

  • 2. A Little About Me e ResearchAssociate @King’s College London e Former postgrad of University of Kent. e OpenBSD Developer (ports) @[email protected] @vext01
  • 5. C and C++ C e 1972 e Dennis Ritchie, Bell Labs C++ e 1985 e Bjarne Stroustrup Both “systems” languages.
  • 6. C and C++ arePopular Languages https://www.tiobe.com/tiobe- index/
  • 7. C and C++ arePopular Languages https://thenewstack.io/evolve -die-popular -programming-languages-confront-newcom ers-tiobe- index/
  • 8. The problem languages like C and C++
  • 9. The problem languages like C and C++ Unsafe
  • 10. The problem languages like C and C++ Unsafe e Memorysafety e Threadsafety
  • 11. The problem languages like C and C++ Unsafe e Memorysafety e Threadsafety
  • 12. Memory Safety * s ) {v o i d d o _ s t u f f ( c h a r . . . i f ( e r r o r ) f r e e ( s ) ; } i n t m a i n ( v o i d ) { c h a r * s = m a l l o c ( 1 6 ) ; s t r n c p y ( s , " h e l l o " , 1 6 ) ; p r i n t f ( " s= ’ s’ n " , s ) ; d o _ s t u f f ( s ) ; p r i n t f ( " s= ’ s’ n " , s ) ; / / < - - Use a f t e r f r e e ! r e t u r n ( EXIT_ SUCCESS ) ; }
  • 13. Kinds of Memory Error e Useafter free e Double free e Buffer overflow e Dangling pointer e Freeinganinvalidaddress Experiencedprogrammers makethesemistakes!
  • 14. Memory Errors = Undefined Behaviour What should happen afterwards is notdefined! e Program may continue to work OK (you got lucky) e Program may crash e Program my continue, but behave differently
  • 15. Memory Safety $ ./use-after -free s=’hello ’ s=’ ’
  • 17. *Not anaccuratedepiction of a hacker https://pixabay.com/phot os/ hacker -attack-mask-internet-2883632/
  • 18. Hackers! “Hackers” exploit memory errors Often they can“persuade” abrokenprogram to do their bidding
  • 20. What Hackers Want e To steal your sensitive data.
  • 21. What Hackers Want e To steal your sensitive data. e To run naughty programs on your computer.
  • 22. How bad is the problem?
  • 23. CVEs Common Vulnerability and Exposures Database
  • 25. CVE Statistics: Cifuentes andBierman http: //drops.dagstuhl.de/opus/volltexte/2019/10546/
  • 26. CVE Statistics: Cifuentes andBierman For the five years from 2013 to 2017: 5,899 buffer errors (That’s about 21%of the data) Average total cost of a data breach: US$3.86 million
  • 27. Other Statistics: Alex Gaynor https://alexgaynor.net/2019/aug/12/ introduction-to-memory-unsafety-for-vps-of-engineering/
  • 28. Other Statistics: Alex Gaynor A recent study found that 60-70% of vul- nerabilities in iOS and macOS are caused by memory unsafety. Microsoft estimates that 70% of all vulnera- bilities in their products over the last decade have been caused by memoryunsafety. Google estimated that 90% of Android vul- nerabilities arememoryunsafety.
  • 29. How bad is the problem? Pretty bad!
  • 31. What can wedo? e Detect and fix using dynamic/static analysis
  • 32. What can wedo? e Detect and fix using dynamic/static analysis e OS-level mitigations
  • 33. What can wedo? e Detect and fix using dynamic/static analysis e OS-level mitigations e Usea“managed” language e GarbageCollection :(
  • 36. Rust
  • 37. Rust’s Motivation Rust’s rich type system and owner- ship model guarantee memory-safety and thread-safety, and enable you to eliminate many classes of bugs at compile-time. (+ performance + productivity)
  • 38. Example: Use after Free in Rust fn do_stuff(s: String) { ... if error { drop(s); // Not necessary. } } fn main () { let s = String ::from("hello"); println!("s=’{}’", s); do_stuff(s); println!("s=’{}’", s); }
  • 39. Example: Use after Free in Rust e r r o r [ E0382 ] : borrow o f moved v a l u e : ‘s‘ l e t s - - > s r c / m a i n . r s : 1 2 : 2 4 | 8 | | | | = S t r i n g : : from ( " h e l l o " ) ; - move o c c u r s b e c a u s e ‘s‘h a s t y p e ‘s t d : : s t r i n g : : S t r i n g ‘, which does n o t i m p l e m e n t t h e ‘Copy ‘ t r a i t d o _ s t u f f ( s ) ; - v a l u e moved h e r e p r i n t l n ! ( " s= ’{}’", he r e . . . 11 | | 12 | | | s ) ; ^ v a l u e borrowe d a f t e r move e r r o r : a b o r t i n g due t o p r e v i o u s e r r o r
  • 42. Rust’s Ownership and Lifetimes Compile-time memorysafety without agarbage collector.
  • 43. Rust’s Ownership and Lifetimes Compile-time memorysafety without agarbage collector. Secureand performant systemsprogramming!
  • 44. The take away message
  • 45. The take away message With Rust, memoryerrors canbe(mostly) athing of the past.
  • 46. The take away message With Rust, memoryerrors canbe(mostly) athing of the past. https://pixabay.com/photos/thumbs -up-thumb-hand-positive-
  • 47. What else is good about Rust? e Pretty good performance.
  • 48. What else is good about Rust? e Pretty good performance. e Goodstandard library.
  • 49. What else is good about Rust? e Pretty good performance. e Goodstandard library. e Goodand safemulti-threading support.
  • 50. What else is good about Rust? e Pretty good performance. e Goodstandard library. e Goodand safemulti-threading support. e Pretty portable.
  • 51. What else is good about Rust? e Pretty good performance. e Goodstandard library. e Goodand safemulti-threading support. e Pretty portable. e Thriving community and ecosystem.
  • 53. Any Downsides? e Rust is quite hard to learn. e e e Ownership/lifetimes are unfamiliar. Error messages hard to understand. Large language.
  • 54. Any Downsides? e Rust is quite hard to learn. e e e Ownership/lifetimes are unfamiliar. Error messages hard to understand. Large language. e Rust is still young and changing.
  • 55. Any Downsides? e Rust is quite hard to learn. e e e Ownership/lifetimes are unfamiliar. Error messages hard to understand. Large language. e Rust is still young and changing. e Compile-times canbeslow.
  • 56. Any Downsides? e Rust is quite hard to learn. e e e Ownership/lifetimes are unfamiliar. Error messages hard to understand. Large language. e Rust is still young and changing. e Compile-times canbeslow. e Somethings arequite hard in “safe” Rust. e unsafe keyword
  • 57. Resources Website: https://www.rust-lang.org/ GitHub: https://github.com/rust-lang/rust Try it out online: https://play.rust-lang.org/ Learn: https://doc.rust-lang.org/rust-by-example/