Slide 1

Slide 1 text

Neon JavaScript Native Extensions in Rust

Slide 2

Slide 2 text

JavaScript Native Extensions (C++) ● Unsafe ● Risky - segfaults! ● Maintenance burden ● Contribution barrier ● Cross Platform Support

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Meet Rust ● Like C: compiled, statically typed, very fast ● Unlike C: enjoyable to use, guarantees safety ● "If it compiles, it doesn't crash" ● Same guarantee as JavaScript with memory safety ● Strong C/FFI support

Slide 5

Slide 5 text

Cargo - Dependency Manager

Slide 6

Slide 6 text

What is Neon? ● Rust bindings for writing safe and fast native Node.js modules ● Crash free memory protection (works with JS GC) ● Parallelism (use multiple threads)

Slide 7

Slide 7 text

Mandelbrot Demo

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

z n+1 = z n 2 + c

Slide 10

Slide 10 text

DEMO https://github.com/hone/electronjs-mandelbrot https://github.com/hone/neon-mandelbrot

Slide 11

Slide 11 text

Wire App

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Neon @ Heroku/Salesforce

Slide 14

Slide 14 text

Heroku/SFDX CLI

Slide 15

Slide 15 text

Distribution