2022-12-27 19:26:32 +03:00
# `carbonyl`
2022-11-11 12:23:16 +03:00
2022-12-27 19:26:32 +03:00
Carbonyl is a Chromium based browser built to run in a terminal. [Read the blog post ](https://fathy.fr/carbonyl ).
2022-11-11 12:23:16 +03:00
2022-12-27 19:26:32 +03:00
It supports pretty much all Web APIs including WebGL, WebGPU, audio and video playback, animations, etc..
2022-11-17 02:36:54 +03:00
2022-12-27 19:26:32 +03:00
It's snappy, starts in less than a second, runs at 60 FPS, and idles at 0% CPU usage. It does not requires a window server (ie. works in a safe-mode console), and even runs through SSH.
2022-11-17 02:36:54 +03:00
2022-12-27 19:26:32 +03:00
Carbonyl originally started as [`html2svg` ](https://github.com/fathyb/html2svg ) and is now the runtime behind it.
2022-11-18 12:48:10 +03:00
2022-12-27 19:26:32 +03:00
## Usage
2022-11-18 12:48:10 +03:00
2022-12-27 19:26:32 +03:00
> Currently building...
2022-11-18 12:48:10 +03:00
```shell
2022-12-27 19:26:32 +03:00
# Watch YouTube inside a Docker container
$ docker run fathyb/carbonyl youtube.com
2022-11-11 12:23:16 +03:00
```
2022-11-14 11:58:00 +03:00
## Development
2022-12-27 19:26:32 +03:00
### Fetch
2022-11-11 12:23:16 +03:00
2022-12-27 19:26:32 +03:00
```console
$ cd chromium
$ gclient sync
```
2022-11-17 23:10:03 +03:00
2022-12-27 19:26:32 +03:00
### Configure
2022-11-17 23:10:03 +03:00
2022-12-27 19:26:32 +03:00
> You need to disable `lld` on macOS because of a linking bug related to Rust and `compact_unwind`
2022-11-17 23:10:03 +03:00
2022-12-27 19:26:32 +03:00
```console
$ cd chromium/src
$ gn gen out/Default
2022-11-17 23:10:03 +03:00
```
2022-12-27 19:26:32 +03:00
### Build
2022-11-17 23:10:03 +03:00
2022-12-27 19:26:32 +03:00
```console
$ cd chromium/src
$ ninja -C out/Default headless:headless_shell
2022-11-17 23:10:03 +03:00
```