Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@fathyb/carbonyl-linux-amd64
Advanced tools
O O \ / O —— Cr —— O / \ O O | Carbonyl |
Carbonyl is a Chromium based browser built to run in a terminal. Read the blog post.
It supports pretty much all Web APIs including WebGL, WebGPU, audio and video playback, animations, etc..
It's snappy, starts in less than a second, runs at 60 FPS, and idles at 0% CPU usage. It does not require a window server (i.e. works in a safe-mode console), and even runs through SSH.
Carbonyl originally started as html2svg
and is now the runtime behind it.
Carbonyl on Linux without Docker requires the same dependencies as Chromium.
$ docker run --rm -ti fathyb/carbonyl https://youtube.com
$ npm install --global carbonyl
$ carbonyl https://github.com
Lynx is the original terminal web browser, and the oldest one still maintained.
Some might sound like pluses, but Browsh and Carbonyl let you disable most of those if you'd like
Browsh is the original "normal browser into a terminal" project. It starts Firefox in headless mode and connects to it through an automation protocol.
As far as tested, the operating systems under are supported:
Carbonyl is split in two parts: the "core" which is built into a shared library (libcarbonyl
), and the "runtime" which dynamically loads the core (carbonyl
executable).
The core is written in Rust and takes a few seconds to build from scratch. The runtime is a modified version of the Chromium headless shell and takes more than an hour to build from scratch.
If you're just making changes to the Rust code, build libcarbonyl
and replace it in a release version of Carbonyl.
$ cargo build
Few notes:
scripts/
directory are simple wrappers around gn
, ninja
, etc..Fetch Chromium's code.
$ ./scripts/gclient.sh sync
Any changes made to Chromium will be reverted, make sure to save any changes you made.
$ ./scripts/patches.sh apply
$ ./scripts/gn.sh args out/Default
Default
is the target name, you can use multiple ones and pick any name you'd like, i.e.:
$ ./scripts/gn.sh args out/release $ ./scripts/gn.sh args out/debug # or if you'd like to build a multi-platform image $ ./scripts/gn.sh args out/arm64 $ ./scripts/gn.sh args out/amd64
When prompted, enter the following arguments:
import("//carbonyl/src/browser/args.gn")
# uncomment this to build for arm64
# target_cpu = "arm64"
# comment this to disable ccache
cc_wrapper = "env CCACHE_SLOPPINESS=time_macros ccache"
# comment this for a debug build
is_debug = false
symbol_level = 0
is_official_build = true
$ ./scripts/build.sh Default
This should produce the following outputs:
out/Default/headless_shell
: browser binaryout/Default/icudtl.dat
out/Default/libEGL.so
out/Default/libGLESv2.so
out/Default/v8_context_snapshot.bin
# Build arm64 Docker image using binaries from the Default target
$ ./scripts/docker-build.sh Default arm64
# Build amd64 Docker image using binaries from the Default target
$ ./scripts/docker-build.sh Default amd64
$ ./scripts/run.sh Default https://wikipedia.org
FAQs
Chromium running in your terminal
The npm package @fathyb/carbonyl-linux-amd64 receives a total of 7 weekly downloads. As such, @fathyb/carbonyl-linux-amd64 popularity was classified as not popular.
We found that @fathyb/carbonyl-linux-amd64 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.