Create Your Own JavaScript Runtime with V8, Libuv & More ||Bun? Deno? Node.js?|| Erick Wendel

preview_player
Показать описание

Do you know how the Chrome JavaScript Engine V8 works alongside the powerful cross-platform asynchronous I/O Libuv?

Or going even further, have you noticed how many JavaScript runtimes such as Bun, Deno, or Cloudflare Workers are going hype nowadays?

Is it that easy to build a JavaScript runtime from Scratch? Well, let's find out!

Ah, and I brought surprises for you.

I've prepared a complete cloud environment for you to develop new features for your JavaScript runtime without having to set up a C++ environment or compile the V8 and libuv libraries.

✅ SOURCE CODE

✅ FOLLOW ME

✅ LINKS

✅ TIMELINE

00:00:00 - SUBSCRIBE NOW
00:03:24 - About video content
00:04:45 - How to create a Javascript compiler?
00:16:08 - About JavaScript Promises
00:21:17 - About CapivaraBR
00:21:22 - Starting demo: accessing the Gitpod environment
00:22:50 - Testing project
00:23:46 - Understanding the start file
00:25:45 - Check and run the examples files
00:30:37 - The v8 headers
00:31:35 - About the makefile
00:32:22 - Checking the template code
00:34:36 - Understanding the context: implementation and lifecycle
00:38:45 - Trying out our template creating a simple for loop
00:39:43 - Implementing a timeout function
00:41:57 - Creating the timer class
00:46:34 - Get arguments using isolate, context, and parameters
00:51:44 - Implementing a callback to timeout function
00:53:15 - Create a struct to share data through callbacks
00:53:48 - Instantiate timer function
00:55:45 - Testing changes
00:56:45 - Storing the function to use in the callback function
01:01:34 - Retrieving data and calling back the js function
01:05:29 - Grabbing results from the callback and putting them on a variable
01:10:06 - are Promises just wrappers for callbacks?
01:13:20 - Creating a libuv thread
01:20:55 - Advanced examples
01:22:50 - Final considerations
01:24:27 - Blooper reel
01:25:26 - Thank you!

#JavaScriptRuntime #V8 #Libuv #Nodejs #Deno #WebDevelopment #FrontendDevelopment #BackEndDevelopment #ErickWendel #SoftwareDevelopment #CodeNewbie #ProgrammingTips #TechTips #DeveloperCommunity #OpenSource #CodeChallenge #CodeMentor #CodingLife #TechBlog #LearnToCode #CodeLikeAPro #CodeOptimization #CodeEfficiency #CodePerformance #CodeDebugging #CodeReview #CodeRefactoring #CodeQuality #WebApps #WebDevelopmentTools
Рекомендации по теме
Комментарии
Автор

Great video and explanation.
I liked the explanation with the live coding which made the concepts more clear and visible
Thank you Erick!
It is cool to see how node.js interacts with V8 and understand more what V8 does behind the scenes and how it binds new objects to the global context

kalmanlabinsky
Автор

É nítido o tanto de esforço que o Eric coloca nos conteúdos, máximo respeito. O mais brabo javascripter senior demais of the world.

NotO
Автор

Bro, I appreciate the time you put in on this! The density of self advertising though really impacts the flow and makes this very hard to consume. All the best for the next videos!

zeusdeux
Автор

Não é atoa que sou aluno JS Expert! Orgulho demais mestre!! parabéns pelo conteúdo e especialmente por compartilhar tudo isso conosco! AI SIM!! 👏🏻👏🏻🚀

ofernandoalmeida
Автор

Já estamos acostumados com um framework por dia. Agora teremos um runtime por dia também?
Bora ver esse vídeo que deve estar seniorzão

felipegoulart
Автор

O Cara é BR, fala super bem em inglês, recria o Node e explicando tudo magicamente tranquilo kkk como se aquilo fosse a coisa mais simples do mundo.

Simplesmente sensacional!

ebnermatias
Автор

Olha, difícil achar um cara com conteúdo tão completo (e profundo) como o Erick.
Obrigado monstro!

(E viva as guitarras! rs)

anascimento
Автор

Likely the best video on this subject.

rodz
Автор

it's really congratulations teacher Erick

antonioulundo
Автор

Amazing video! I was wondering what Node does beyond V8 and what exactly Libuv does (even because I want to contribute to Neovim and they use it too) and you cleared my doubts. I looked at your channel and I love all the interesting tech stuff you put without all the fluff typical of too many programming YouTubers.
I'm definitely going to reccomend you to coworkers which might be interested in these topics 😃

apprenticerocker
Автор

mano vc é uma das minhas inspirações pra me tornar programador de node, cada conteudo foda slk slk mto bom mano

lenszlos
Автор

About development compilation, to turn it faster, you can use gulp task to watch *.cpp(.hpp, .h) files and compile the Capivara application and another gulp task to watch the *.js files and just re-run the Capivara binary without recompilation.

wesleysmitthe
Автор

Erick brew is giving the hint now about the -s param with the right arguments based on your architecture (had this issue a couple of months ago)

ipmb
Автор

cara, eu tava procurando conteúdo nesse sentido há bastante tempo! Achava ate que te seguia aqui no youtube, mas nao tava inscrito, só agora vi teu video. MUITO BOM, me deu uma boa ideia de como iniciar estudos para criação de JS runtime, me interessei nesse assunto depois de lançarem o Bun js.

MarlonEnglemam
Автор

Thank you very much for your time and for clarifying this topic.
A big thumbs up for the GitPod env.

romualdlemesle
Автор

Brabo! Jamais esperei um conteúdo top desse!!

Fernando-duuj
Автор

Eu acredito na supremacia do Erick Wendel! Amém, mestre ❤

rm_amaral
Автор

o cara chegou em um nível q n tem como explicar, brabo !

augustoaraujorocha
Автор

Que foda! Quando eu crescer quero ser que nem vc hahahah

iagopomponet
Автор

Ain't never had any doubts haha! Muito obrigado, meu consagrado!

BrasilEmFatos