{"id":21222756,"url":"https://github.com/italocobains/capivara-runtime-javascript","last_synced_at":"2025-09-12T22:47:55.968Z","repository":{"id":109795059,"uuid":"549829137","full_name":"ItaloCobains/Capivara-Runtime-JavaScript","owner":"ItaloCobains","description":"Criando javascript runtime com base no video do @ErickWendel","archived":false,"fork":false,"pushed_at":"2022-10-13T17:23:22.000Z","size":25219,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T17:23:33.694Z","etag":null,"topics":["cc","cpp","javascript","libuv","v8-javascript-engine"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=ynNDmp7hBdo\u0026feature=youtu.be","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ItaloCobains.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-11T20:00:22.000Z","updated_at":"2022-11-16T14:57:56.000Z","dependencies_parsed_at":"2023-04-27T11:16:42.363Z","dependency_job_id":null,"html_url":"https://github.com/ItaloCobains/Capivara-Runtime-JavaScript","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ItaloCobains%2FCapivara-Runtime-JavaScript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ItaloCobains%2FCapivara-Runtime-JavaScript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ItaloCobains%2FCapivara-Runtime-JavaScript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ItaloCobains%2FCapivara-Runtime-JavaScript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ItaloCobains","download_url":"https://codeload.github.com/ItaloCobains/Capivara-Runtime-JavaScript/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243670731,"owners_count":20328521,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cc","cpp","javascript","libuv","v8-javascript-engine"],"created_at":"2024-11-20T22:46:54.609Z","updated_at":"2025-03-15T01:28:41.773Z","avatar_url":"https://github.com/ItaloCobains.png","language":"C++","readme":"# CapivaraBR - Creating your own JavaScript runtime tutorial\n![capivara logo](./capivara.jpeg)\n\n## Overview\nCapivaraBR is a JavaScript runtime built on top of [V8 Javascript Engine](https://github.com/v8/v8) and [Libuv](https://github.com/libuv/libuv) \n\n- Use the environment to follow the tutorial on a [Gitpod snapshot](https://gitpod.io#snapshot/f5d65d51-37d6-457f-9606-6db394eba60a)\n\n## About\nWelcome, this repo is part of my youtube video about Recreating the Node.js project from Scratch using V8, Libuv and C++\n\nFirst of all, leave your star 🌟 on this repo.\n\nAccess our [**exclusive telegram channel**](https://bit.ly/ErickWendelContentHub) so I'll let you know about all the content I've been producing \n\n## Running\n\n- In the GitPod env you can run the hello world example by running the executable [./start.sh](./capivara/start.sh) script. \n\n### Notes\n\n- It comes with `live reload` enabled for `C++` and `JS` files using `nodemon`\n- It comes with a simple `Print` function, a custom C++ function used as a `console.log` function\n- The [./start.sh](./capivara/start.sh) script generates a `binary` called `capivara`. \n    - It works similarly to how `Node.js` works. \n        - By running `capivara index.js` it will read the `JavaScript` content from the file and use `V8` to interpret it nd `libuv` to wait for async events.\n\n- Project uses `V8 v10.7.0`\n- Project uses `Libuv v1.x`\n\n- All other dependencies are listed on [scripts](./scripts) folder.\n\n## Examples\n\nI left some file exmaples on [examples](./examples/) folder in case you wanna check out how to create [uv timers](./examples/uv-timers.cpp), [uv threads](./examples/uv-threads.cpp), [native cpp threads](./examples/cpp-native-threads.cpp) or the [v8 custom print function](./examples/v8-print-hello.cpp).\n\n### Running the examples\n- You can compile and execute examples by simply executing \n```sh\nmake example-without-extension\n```\nFor example executing the [v8-print-hello.cpp](./examples/v8-print-hello.cpp):\n```sh\nmake v8-print-hello\n# Hello, World!...\n```\n## Compiling binaries for other platforms\n\nif you wanna compile binaries it by yourself, I left some scripts in case you wanna compile all binaries by yourself\n\n- [Installing libuv](./scripts/libuv-env-script-x86.sh)\n- [Installing v8](./scripts/v8-env-script-x86.sh)\n\n## ItaloCobains implementations\n\nI 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.\n\n\n## Author\n\n- [ErickWendel](https://github.com/erickwendel)\n- [ItaloCobains](https://github.com/ItaloCobains)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitalocobains%2Fcapivara-runtime-javascript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitalocobains%2Fcapivara-runtime-javascript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitalocobains%2Fcapivara-runtime-javascript/lists"}