{"id":50677685,"url":"https://github.com/kassane/libv8","last_synced_at":"2026-06-08T16:35:16.483Z","repository":{"id":357433738,"uuid":"1236905322","full_name":"kassane/libv8","owner":"kassane","description":"build library v8 monolith","archived":false,"fork":false,"pushed_at":"2026-06-08T10:55:16.000Z","size":68,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T14:34:25.699Z","etag":null,"topics":["deployment-automation","libv8","monolith","static","v8"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kassane.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-12T17:27:22.000Z","updated_at":"2026-05-25T19:34:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kassane/libv8","commit_stats":null,"previous_names":["kassane/libv8"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kassane/libv8","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassane%2Flibv8","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassane%2Flibv8/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassane%2Flibv8/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassane%2Flibv8/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kassane","download_url":"https://codeload.github.com/kassane/libv8/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassane%2Flibv8/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34071658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["deployment-automation","libv8","monolith","static","v8"],"created_at":"2026-06-08T16:35:15.851Z","updated_at":"2026-06-08T16:35:16.476Z","avatar_url":"https://github.com/kassane.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libv8\n\nV8 JavaScript engine built as a static monolith (`libv8_monolith.a` /\n`v8_monolith.lib`) for Linux, macOS, and Windows.\n\n## Releases\n\nEach release ships one archive per target × profile, plus `SHA256SUMS`:\n\n```\nlibv8-\u003cversion\u003e-\u003cos\u003e-\u003carch\u003e-\u003cprofile\u003e.tar.xz   # linux, macos\nlibv8-\u003cversion\u003e-\u003cos\u003e-\u003carch\u003e-\u003cprofile\u003e.zip      # windows\n```\n\nInside:\n\n```\ninclude/                # public headers\nlib/libv8_monolith.a    # static monolith (v8_monolith.lib on Windows)\ngen/                    # generated headers (torque, inspector, ...)\nargs.gn                 # exact GN args used for this build\nVERSION                 # V8 tag this artifact was cut from\n```\n\n### Targets\n\n| OS      | Arch  | Runner             |\n|---------|-------|--------------------|\n| Linux   | x64   | `ubuntu-22.04`     |\n| Linux   | arm64 | `ubuntu-22.04-arm` |\n| macOS   | arm64 | `macos-latest`     |\n| Windows | x64   | `windows-latest`   |\n| Windows | arm64 | `windows-11-arm`   |\n\n`linux-x64` is required; the rest are `continue-on-error` so a paid-runner\noutage doesn't fail the workflow. `scripts/patch-v8.sh` carries the V8\n14.9-specific source patches that the non-Linux targets need; each patch is\nidempotent and sentinel-gated so a future V8 bump that ships the fix\nupstream silently no-ops.\n\n### Profiles\n\n| Profile               | i18n | Pointer compression | Sandbox |\n|-----------------------|------|---------------------|---------|\n| `default`             | off  | off                 | off     |\n| `pointer-compression` | off  | on                  | off     |\n| `sandbox`             | off  | on                  | on      |\n| `i18n`                | on   | off                 | off     |\n\nPointer compression and sandbox are ABI-affecting: embedding code must be\nbuilt with matching `-DV8_COMPRESS_POINTERS` / `-DV8_ENABLE_SANDBOX`.\n\nThe `i18n` profile additionally ships `lib/icudtl.dat` (the ICU data file).\nEmbedders must call `V8::InitializeICUDefaultLocation(path_to_icudtl)`\nbefore `V8::Initialize`, otherwise `Intl.*` and Unicode-property RegExp\n(`\\p{…}`, the `v` flag) throw at first use. Other profiles don't need\nthis and don't ship the file.\n\n## Build locally\n\n```bash\njust fetch                                # clone depot_tools + sync V8\njust build                                # host triple, default profile\njust build linux-arm64 pointer-compression\njust all macos-arm64                      # fetch + build + package\n```\n\nWithout `just`:\n\n```bash\n./scripts/fetch.sh\n./scripts/build.sh linux-x64 default\n./scripts/package.sh linux-x64 default\n```\n\nRequires Python 3.8+, `git`, a C++ toolchain, and ~25 GB free disk. `ccache`\n/ `sccache` are auto-detected.\n\n## Releases \u0026 version tracking\n\nReleases are fully automated:\n\n1. **Weekly cron** (`version-check.yml`, Mondays 06:00 UTC) compares `VERSION`\n   against the latest upstream V8 tag.\n2. If outdated, it opens a `chore: bump V8 to \u003cver\u003e` PR with auto-merge\n   enabled.\n3. PR CI runs the full matrix on the proposed version. Only a green PR\n   merges — a broken upstream is caught before it touches `main`.\n4. `auto-tag.yml` watches for `VERSION`-changing pushes to `main` and\n   pushes the matching `v\u003cver\u003e` tag, which triggers `release.yml` to\n   build and publish.\n\nManual bump: edit `VERSION`, merge → tag is created automatically.\n\nManual dispatch of `version-check.yml` accepts a `force: true` input to\nopen the PR even when `VERSION` is current (useful for re-rolling a release).\n\n### Prerequisites\n\n- Repo setting **Allow auto-merge** must be on.\n- Optional: set a `RELEASE_TOKEN` secret (PAT with `contents:write`,\n  `pull-requests:write`) if branch protection blocks `GITHUB_TOKEN`.\n\n## CI runner cost\n\nmacOS/Windows minutes bill at 10×/2× Linux. `build.yml` accepts\n`runners: free-only` (Linux x64 + arm64) for cheap iteration; `release.yml`\nalways uses `all`.\n\n## Repository layout\n\n```\nVERSION                # pinned V8 tag (single source of truth)\n.gclient               # depot_tools solution with pruned deps\nargs/                  # GN args per target + profile\nscripts/               # fetch / build / package / patch / version pipeline\nJustfile\n.github/\n  actions/setup-depot-tools/\n  workflows/{build,release,version-check,auto-tag}.yml\n```\n\n## Credits\n\nInspired by [`kuoruan/libv8`](https://github.com/kuoruan/libv8) and\n[`just-js/v8`](https://github.com/just-js/v8).\n\n## License\n\nMIT. V8 ships under its own BSD-style terms (included in each archive).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkassane%2Flibv8","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkassane%2Flibv8","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkassane%2Flibv8/lists"}