Slide 1

Slide 1 text

We built a runtime We built a runtime

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

22 months ago …

Slide 5

Slide 5 text

Let’s build a CDN for devs! https://fly.io

Slide 6

Slide 6 text

Nginx & Lua (crazy fast) #1

Slide 7

Slide 7 text

Terrible programming model

Slide 8

Slide 8 text

Golang (Super productive) #2

Slide 9

Slide 9 text

So many feature requests

Slide 10

Slide 10 text

Go & Otto #3

Slide 11

Slide 11 text

JavaScript is slow

Slide 12

Slide 12 text

https://ponyfoo.com/articles/an-introduction-to-speculative-optimization-in-v8

Slide 13

Slide 13 text

But v8 is fast?!

Slide 14

Slide 14 text

https://ponyfoo.com/articles/an-introduction-to-speculative-optimization-in-v8

Slide 15

Slide 15 text

https://ponyfoo.com/articles/an-introduction-to-speculative-optimization-in-v8

Slide 16

Slide 16 text

Go & v8 #3

Slide 17

Slide 17 text

Go & v8: Just don’t

Slide 18

Slide 18 text

Node & v8 (We did it!) https://github.com/superfly/fly #4

Slide 19

Slide 19 text

Node: a cheat code for v8

Slide 20

Slide 20 text

Building a JavaScript Runtime // browsers implement a `fetch` method // for making HTTP requests fetch("https://fly.io").then(function (r) { console.log("got response:", { status: r.status, size: r.body.length }) }) Batteries not included

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

Building a JavaScript Runtime console.log("hello world") No console for you

Slide 23

Slide 23 text

Building a JavaScript Runtime let lib = require('anything') Libraries, schmibraries

Slide 24

Slide 24 text

Fork the CDN https://fly.io

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

But it’s still Node

Slide 27

Slide 27 text

Rust & v8 (Hard mode) https://github.com/superfly/fly.rs #5

Slide 28

Slide 28 text

Good enough to handle DNS

Slide 29

Slide 29 text

We built a runtime We built a runtime

Slide 30

Slide 30 text

You can too You can too

Slide 31

Slide 31 text

No content