Starting Rust from a Scripting Background Run Rust Deploy, Write, - - PowerPoint PPT Presentation

starting rust from a scripting background
SMART_READER_LITE
LIVE PREVIEW

Starting Rust from a Scripting Background Run Rust Deploy, Write, - - PowerPoint PPT Presentation

http://talks.edunham.net/scale15x Rust 101 E. Dunham @qedunham Intro Starting Rust from a Scripting Background Run Rust Deploy, Write, and Improve Rust Write Rust Improve Rust E. Dunham @qedunham March 5, 2017


slide-1
SLIDE 1

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

Starting Rust from a Scripting Background

Deploy, Write, and Improve Rust

  • E. Dunham

@qedunham March 5, 2017 http://talks.edunham.net/scale15x

slide-2
SLIDE 2

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

1

Intro About Me About You About Rust

2

Run Rust Channels Installation Options

3

Write Rust Errors Syntax Types & Traits Safety Using Libraries

4

Improve Rust Level up Find a project Get involved

slide-3
SLIDE 3

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

Welcome! This is an intro class

Learn what Rust is & isn’t Run Rust code Meet Rust’s special features Improve Rust

Not:

Hack time for you Unsafe or advanced Rust Exhaustive Q&A 1

1Join your local meetup!

slide-4
SLIDE 4

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

This talk will teach you the basics of Rust, and help you ask the right questions as you continue to explore Rust after the conference. The Abstract

slide-5
SLIDE 5

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

About Me: DevOps for Mozilla Research 2 Rust Community Team member FOSS & robotics background NOT a compiler wizard

2Infra is mostly Python

slide-6
SLIDE 6

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

Have you... Heard of Rust? Used Rust? Contributed to Rust?

slide-7
SLIDE 7

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

Have you... Written C, C++, Assembly, etc? Written Java, Python, Ruby, JS, etc? Written Haskell, Erlang, Ocaml, etc?

slide-8
SLIDE 8

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

Have you... Used version control? Used GitHub? Contributed to a FOSS project?

slide-9
SLIDE 9

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

What’s Rust? Systems language 3 Safety + Performance Community... (Thriving but controversial)

3Contrast to Go, a language for sysadmins

slide-10
SLIDE 10

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

Rust’s Buzzwords Safety, Speed, Concurrency Memory safety without garbage collection Zero-cost abstractions Hack Without Fear

slide-11
SLIDE 11

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

Safety & GC Memory must be reused C: “Just follow these rules perfectly, you’re smart” Java, JS, etc: “Wait a minute, I’ll take care of it” Rust: “I’ll prove correctness at compile time”

slide-12
SLIDE 12

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

History Since ˜2010 1.0 Stable in May 2015 Currently 4 version 1.14.0 Mozilla sponsorship & support

4until January 26th

slide-13
SLIDE 13

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

Notable Projects servo.org Browser Engine habitat.sh Infrastructure Tooling Dropbox (internal use) https://www.rust-lang.org/en-US/friends.html

slide-14
SLIDE 14

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

Where is Rust a good tool? Speed + Safety essential LLVM-supported architecture Team ♥ new technology

slide-15
SLIDE 15

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

Where might Rust be a bad tool? Timeframe prohibits new learning Need code reuse 5 Can’t handle CoC

5Corrode can translate C to unsafe Rust

slide-16
SLIDE 16

Rust 101

  • E. Dunham

@qedunham Intro

About Me About You About Rust

Run Rust Write Rust Improve Rust http://talks.edunham.net/scale15x

Questions about Rust’s place in the world?

slide-17
SLIDE 17

Rust 101

  • E. Dunham

@qedunham Intro Run Rust

Channels Installation Options

Write Rust Improve Rust http://talks.edunham.net/scale15x

1

Intro About Me About You About Rust

2

Run Rust Channels Installation Options

3

Write Rust Errors Syntax Types & Traits Safety Using Libraries

4

Improve Rust Level up Find a project Get involved

slide-18
SLIDE 18

Rust 101

  • E. Dunham

@qedunham Intro Run Rust

Channels Installation Options

Write Rust Improve Rust http://talks.edunham.net/scale15x

Rust’s channels: Nightly: Trying neat ideas Beta: Release candidates Stable: Always backwards-compatible 6

6https://blog.rust-lang.org/2015/05/15/Rust-1.0.html

slide-19
SLIDE 19

Rust 101

  • E. Dunham

@qedunham Intro Run Rust

Channels Installation Options

Write Rust Improve Rust http://talks.edunham.net/scale15x

Which channel to use? Stable code should run anywhere Switch to nightly for dependencies New project? Pick stable 7

7Unless you need an unstable feature

slide-20
SLIDE 20

Rust 101

  • E. Dunham

@qedunham Intro Run Rust

Channels Installation Options

Write Rust Improve Rust http://talks.edunham.net/scale15x

Aside: Crater Compile all published libraries Diff results from stable and candidate https://github.com/brson/taskcluster-crater

slide-21
SLIDE 21

Rust 101

  • E. Dunham

@qedunham Intro Run Rust

Channels Installation Options

Write Rust Improve Rust http://talks.edunham.net/scale15x

Questions about channels & installation?

slide-22
SLIDE 22

Rust 101

  • E. Dunham

@qedunham Intro Run Rust

Channels Installation Options

Write Rust Improve Rust http://talks.edunham.net/scale15x

Installation: Online: play.integer32.com or play.rust-lang.org Many rusts: rustup.rs System package manager 8 Tinfoil hat: Compile from source

8Or add Rust to your favorite!

slide-23
SLIDE 23

Rust 101

  • E. Dunham

@qedunham Intro Run Rust

Channels Installation Options

Write Rust Improve Rust http://talks.edunham.net/scale15x

Playpens: Source at https://github.com/rust-lang/rust-playpen Choose output, LLVM IR, or ASM Gist your progress Config alters editor settings

slide-24
SLIDE 24

Rust 101

  • E. Dunham

@qedunham Intro Run Rust

Channels Installation Options

Write Rust Improve Rust http://talks.edunham.net/scale15x

Rustup: Docs at https://github.com/rust-lang-nursery/rustup.rs ˜/.cargo/bin rustup install nightly rustup run nightly cargo new

slide-25
SLIDE 25

Rust 101

  • E. Dunham

@qedunham Intro Run Rust

Channels Installation Options

Write Rust Improve Rust http://talks.edunham.net/scale15x

Security: All releases GPG signed Key only held by Rust Core Team members keybase.io/rust (proved by local signing) Rustup checks signatures for you github.com/rust-lang/rust

slide-26
SLIDE 26

Rust 101

  • E. Dunham

@qedunham Intro Run Rust

Channels Installation Options

Write Rust Improve Rust http://talks.edunham.net/scale15x

Deployment Check README for system dependencies git clone projecturl cd project cargo run

Downloads any dependencies Compiles deps & code Executes src/main.rs

slide-27
SLIDE 27

Rust 101

  • E. Dunham

@qedunham Intro Run Rust

Channels Installation Options

Write Rust Improve Rust http://talks.edunham.net/scale15x

Questions about installation?

slide-28
SLIDE 28

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

1

Intro About Me About You About Rust

2

Run Rust Channels Installation Options

3

Write Rust Errors Syntax Types & Traits Safety Using Libraries

4

Improve Rust Level up Find a project Get involved

slide-29
SLIDE 29

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

IDE support: https://areweideyet.com/ http://www.jonathanturner.org/2017/01/rls-alpha-release.html

slide-30
SLIDE 30

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

REPL equivalents: Use the playpen playbot on IRC https://github.com/murarth/rusti worked briefly on nightly

slide-31
SLIDE 31

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Rust wants you to succeed. Rules catch things that look unsafe “Unsafe” directive is an override Errors deserve helpful docs Click error number in playpen!

slide-32
SLIDE 32

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Erroneous Errors? Search the web! Gist your code Ask on IRC #rust-beginners File a bug

slide-33
SLIDE 33

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Aside: Other helpful tools https://github.com/nrc/rustfmt Rustfmt standardizes style for you https://github.com/manishearth/rust-clippy Clippy gives helpful suggestions

slide-34
SLIDE 34

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Questions about errors?

slide-35
SLIDE 35

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Scope Syntax: Everything between matched {} Scopes can nest {Outer Scope {Inner Scope}} Pay attention to a value’s scope!

slide-36
SLIDE 36

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Function Syntax: fn myfunction { ... } fn myfunction (arg: type, arg: type) - ❃ resulttype { ... } Type signatures are like Mad Libs Function has at least name and scope

slide-37
SLIDE 37

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Macro Syntax: Shorthand for functions with variable number of arguments macroname!(foo, bar, baz) doc.rust-lang.org/beta/book/macros.html You’ll see “println!”

slide-38
SLIDE 38

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

A Function: fn halve(x: i32) -> i32 { return x / 2; } fn main(){ println!("{}", halve(4)); }

slide-39
SLIDE 39

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Punctuation Matters: Expressions end with a semicolon Exception: bare expression on last line of function returns result Spaces separate tokens: i32 is not i 32 Whitespace is mostly irrelevant

slide-40
SLIDE 40

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Abusing Whitespace: fn halve (x : i32)->i32 { return x / 2 ; } fn main () { println!("{}", halve ( 4 ));}

slide-41
SLIDE 41

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Control Flow Syntax: Conditionals and loops are familiar

if x { ... } loop { ... } while x { ... } for x in 1..100 { ... }

Match statements combine conditionals https://doc.rust-lang.org/book/if.html https://doc.rust-lang.org/book/loops.html https://doc.rust-lang.org/book/match.html

slide-42
SLIDE 42

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Matching on a variable: fn main() { let day = 5; println!("March {} 2017 is:", day); match day { 2 => println!("Open Infra Day"), 1 | 6 => println!("Travel Time"), 3...5 => println!("The Conference"), _ => println!("not SCaLE at all"), } }

slide-43
SLIDE 43

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Questions about basic syntax?

slide-44
SLIDE 44

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Why Types & Traits? Describe characteristics of inputs and outputs Avoid allocating unneeded memory Remind humans how code works 9

9Even type signatures that the compiler could infer must be spelled out.

slide-45
SLIDE 45

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Built-in types https://doc.rust-lang.org/book/primitive-types.html Primitives, arrays, strings, tuples

slide-46
SLIDE 46

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Custom types http://rustbyexample.com/custom_types.html Structs & Enums Use types from your dependencies (example in a few slides)

slide-47
SLIDE 47

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Traits https://doc.rust-lang.org/book/traits.html Traits describe a type’s abilities You can tell Rust how type has trait with “impl” Generalize function’s input and output

slide-48
SLIDE 48

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Questions about types & traits?

slide-49
SLIDE 49

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Ownership: let myint = 42; “myint” is a variable binding “myint” owns the value 42 Every value has exactly one owner See https://doc.rust-lang.org/book/ownership.html

slide-50
SLIDE 50

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Mutability: Owner can only change value if it’s mutable let mut myint = 42;

slide-51
SLIDE 51

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Aside: Copy types Primitives have Copy trait Contents duplicated on assignment to new var Custom and other types are not Copy We’ll use Box

slide-52
SLIDE 52

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Changing the owner: fn main() { let first = Box::new(42); // Box forces heap allocation, // regular int would just copy println!("{}", first); let second = first; println!("{}", second); // this would be an error: // println!("{}", first); }

slide-53
SLIDE 53

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Borrowing Grant temporary access to a value 1 mutable borrow XOR unlimited immutable borrows Syntax: &myvar https://doc.rust-lang.org/book/references-and-borrowing.html

slide-54
SLIDE 54

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Lifetimes Remember {scopes}? Variables disappear when their scope ends! No borrow may outlive its value’s owner.

slide-55
SLIDE 55

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Questions about safety?

slide-56
SLIDE 56

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Package Management Package manager: Cargo Libraries: Crates Package index: crates.io See “Package Managers All The Way Down”, Tasman B, 3:40pm today See http://doc.crates.io/guide.html

slide-57
SLIDE 57

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Create a binary or library cargo new –bin

Binary You run main.rs cargo.lock stores state of last good build

cargo new

Library src/lib.rs, no main function

slide-58
SLIDE 58

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

‘cargo new’ creates: Cargo.toml src/main.rs or src/lib.rs .git if absent

slide-59
SLIDE 59

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Depending on a crate Search crates.io Search the web, check recent blogs Check docs, license, & project policies Add it to ‘dependencies’ section of cargo.toml

name = “0.1” name = { git = “https://github.com/org/repo.git” rev = “123abcd” }

extern crate rand; use rand::Rng;

slide-60
SLIDE 60

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust

Errors Syntax Types & Traits Safety Using Libraries

Improve Rust http://talks.edunham.net/scale15x

Questions about libraries?

slide-61
SLIDE 61

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

1

Intro About Me About You About Rust

2

Run Rust Channels Installation Options

3

Write Rust Errors Syntax Types & Traits Safety Using Libraries

4

Improve Rust Level up Find a project Get involved

slide-62
SLIDE 62

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Always... Respect others’ licenses License your own code Document & share what you learn!

slide-63
SLIDE 63

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Read a Book https://doc.rust-lang.org/stable/book/ https://doc.rust-lang.org/nomicon/ O’Reilly Book coming soon

slide-64
SLIDE 64

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Follow the News http://www.newrustacean.com/ podcast https://soundcloud.com/posix4e/sets/rustyradio interviews https://this-week-in-rust.org/ Weekly newsletter https://blog.rust-lang.org/ Official Blog

slide-65
SLIDE 65

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Practice https://github.com/carols10cents/rustlings http://rustbyexample.com/

slide-66
SLIDE 66

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Questions about learning more Rust?

slide-67
SLIDE 67

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Join a project https://crates.io/, find popular crates Search GitHub “is:issue label:easy language:rust”

slide-68
SLIDE 68

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Port something https://github.com/jameysharp/corrode linux.conf.au/schedule/presentation/51/ Friday 1:20pm https: //blog.rust-lang.org/2015/04/24/Rust-Once-Run-Everywhere.html

slide-69
SLIDE 69

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Questions about finding a project?

slide-70
SLIDE 70

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

File or Fix issues github.com/rust-lang/rust We triage regularly If in doubt, ask on IRC first

slide-71
SLIDE 71

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Chat Online IRC: #rust, #rust-beginners on irc.mozilla.org users.rust-lang.org Users Forum Reddit, StackOverflow, etc.

slide-72
SLIDE 72

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Find or join a meetup Search for your area + Rust meetup LA area? https://www.meetup.com/Rust-Los-Angeles/ Community Team Calendar, goo.gl/EJ2iRb #rust-community on Mozilla IRC

slide-73
SLIDE 73

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Attend a conference rustconf.com Oregon, September www.rust-belt-rust.com, Pennsylvania, October www.rustfest.eu, Europe, September

slide-74
SLIDE 74

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Questions about getting involved?

slide-75
SLIDE 75

Rust 101

  • E. Dunham

@qedunham Intro Run Rust Write Rust Improve Rust

Level up Find a project Get involved

http://talks.edunham.net/scale15x

Thank you!