CapivaraBR is a JavaScript runtime built on top of V8 Javascript Engine and Libuv
- Use the environment to follow the tutorial on a Gitpod snapshot
Welcome, this repo is part of my youtube video about Recreating the Node.js project from Scratch using V8, Libuv and C++
First of all, leave your star 🌟 on this repo.
Access our exclusive telegram channel so I'll let you know about all the content I've been producing
- In the GitPod env you can run the hello world example by running the executable ./start.sh script.
-
It comes with
live reload
enabled forC++
andJS
files usingnodemon
-
It comes with a simple
Print
function, a custom C++ function used as aconsole.log
function -
The ./start.sh script generates a
binary
calledcapivara
.- It works similarly to how
Node.js
works.- By running
capivara index.js
it will read theJavaScript
content from the file and useV8
to interpret it ndlibuv
to wait for async events.
- By running
- It works similarly to how
-
Project uses
V8 v10.7.0
-
Project uses
Libuv v1.x
-
All other dependencies are listed on scripts folder.
I left some file exmaples on examples folder in case you wanna check out how to create uv timers, uv threads, native cpp threads or the v8 custom print function.
- You can compile and execute examples by simply executing
make example-without-extension
For example executing the v8-print-hello.cpp:
make v8-print-hello
# Hello, World!...
if you wanna compile binaries it by yourself, I left some scripts in case you wanna compile all binaries by yourself