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 reloadenabled forC++andJSfiles usingnodemon -
It comes with a simple
Printfunction, a custom C++ function used as aconsole.logfunction -
The ./start.sh script generates a
binarycalledcapivara.- It works similarly to how
Node.jsworks.- By running
capivara index.jsit will read theJavaScriptcontent from the file and useV8to interpret it ndlibuvto 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-extensionFor 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
I fix bugs in the implementation of v8 srt() function, to solve the previous error it was necessary to make a new lib inclusion but I received a dependency conflict, so I fixed this conflict.
