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
2023-01-20 14:22:51 +03:00
## Demo
< table >
< tbody >
< tr >
< td >
< video src = "https://user-images.githubusercontent.com/5746414/213682926-f1cc2de7-a38c-4125-9257-92faecfc7e24.mp4" >
< / td >
< td >
< video src = "https://user-images.githubusercontent.com/5746414/213682913-398d3d11-1af8-4ae6-a0cd-a7f878efd88b.mp4" >
< / td >
< / tr >
< tr >
2023-01-20 15:09:03 +03:00
< td colspan = "2" >
2023-01-20 14:22:51 +03:00
< video src = "https://user-images.githubusercontent.com/5746414/213682918-d6396a4f-ee23-431d-828e-4ad6a00e690e.mp4" >
< / td >
< / tr >
< / tbody >
< / table >
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
```