{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/tag/raphael/feed/json/ -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/raphael/", "feed_url": "https://matoken.org/blog/tag/raphael/feed/json/", "language": "ja", "title": "Raphael – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "https://matoken.org/blog/?p=4027", "url": "https://matoken.org/blog/2024/06/30/try-the-lightweight-web-browser-raphael/", "title": "\u8efd\u91cf\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u306e Raphael \u3092\u8a66\u3059", "content_html": "
\n
\n
\n

\u6700\u8fd1\u306e\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u306f\u3068\u3066\u3082\u30ea\u30bd\u30fc\u30b9\u98df\u3044\u3067\u3059\uff0e\u7279\u306b\u30e1\u30e2\u30ea\uff0e\u3044\u304f\u3089\u3042\u3063\u3066\u3082\u8db3\u308a\u307e\u305b\u3093><

\n
\n
\n

\u8efd\u91cf\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3082\u3042\u308a\u307e\u3059\u304c\uff0c\u6a5f\u80fd\u304c\u8db3\u308a\u305a\u52d5\u304b\u306a\u3044\u30b5\u30a4\u30c8\u304c\u591a\u3044\u3067\u3059\uff0e

\n
\n
\n
    \n
  • Dillo (\u6700\u8fd1reboot)
  • \n
  • NetSurf
  • \n
  • Midori(WebKit\u7248)
  • \n
  • :
  • \n
\n
\n
\n

Midori \u306fWebKit\u7248\u306e\u9803\u306f\u8efd\u91cf\u3060\u3051\u3069\u5927\u62b5\u306esite \u306f\u52d5\u3044\u3066\u3044\u305f\u8a18\u61b6\u304c\u3042\u308a\u307e\u3059\uff0e\u3057\u304b\u3057\u305d\u306e\u5f8c Electron(Blink)\u30d9\u30fc\u30b9(Midori 10)\uff0cFirefox(Gekko)\u30d9\u30fc\u30b9\u306e Floorp \u30d9\u30fc\u30b9(Midori 11) \u3068\u306a\u308a\u91cd\u91cf\u7d1a\u306b\uff0e
\n\u4eca\u56de Midori WebKit\u7248\u6642\u4ee3\u304b\u3089\u306e\u30d5\u30a9\u30fc\u30af\u306eRaphael \u3092\u77e5\u3063\u305f\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n

\n\n
\n

Raphael \u306f\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u5411\u3051BSD \u306eMidnightBSD \u304c\u30e1\u30f3\u30c6\u3057\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n

\n\"MidnightBSDLogoText\"

\n
\n\u2014 MidnightBSD
\n
\n
\n
\n
\n

Debian bookworm amd64 / Raspberry Pi OS bookworm armhf \u3067 build

\n
\n
\n

\u3068\u308a\u3042\u3048\u305a\uff0c\u624b\u5143\u306e Debian bookworm amd64 / Raspberry Pi OS bookworm armhf \u3067 build \u3057\u307e\u3057\u305f\uff0e\u4f9d\u5b58\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5165\u308c\u305f\u3089\u3055\u304f\u3063\u3068\u901a\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ sudo apt install cmake valac libwebkit2gtk-4.0-dev libgcr-3-dev libpeas-dev \\\n  libsqlite3-dev libjson-glib-dev libarchive-dev intltool libxml2-utils\n$ wget -c https://github.com/MidnightBSD/raphael/archive/refs/tags/9.1.tar.gz\n$ tar xf 9.1.tar.gz\n$ cd raphael-9.1\n$ mkdir _build && cd _build\n$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..\n$ make\n$ sudo make install
\n
\n
\n
\n
\n
\n

\u8d77\u52d5

\n
\n
\n
\u666e\u901a\u306b\u8d77\u52d5\uff0e
\n

\"raphael

\n
\n
\n
\u65e5\u672c\u8a9e\u3082\u554f\u984c\u3042\u308a\u307e\u305b\u3093
\n

\"raphael

\n
\n
\n
\u52d5\u753b\u3082\u518d\u751f\u3067\u304d\u307e\u3059
\n

\"raphael
\n\"raphael

\n
\n
\n
SNS \u306a\u3093\u304b\u3082
\n

\"raphael

\n
\n
\n

\u305d\u306e\u4ed6\uff0c\u3044\u308d\u3044\u308d\u306a\u30a6\u30a7\u30d6\u30b5\u30fc\u30d3\u30b9\u3092\u8a66\u3057\u307e\u3057\u305f\u304c\u3060\u3044\u305f\u3044\u554f\u984c\u306a\u304b\u3063\u305f\u3067\u3059\uff0e\u3057\u304b\u3057 Zoom.us \u3067\u306f\u300c\u30aa\u30fc\u30c7\u30a3\u30aa\u306b\u63a5\u7d9a\u4e2d\u300d\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304b\u3089\u9032\u307e\u305a\u53c2\u52a0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff0e

\n
\n
\n

\"raphael

\n
\n
\n
\n
\n

\u30e1\u30e2\u30ea\u6d88\u8cbb\u91cf

\n
\n
\n

Raphael \u304f\u3089\u3044\u3057\u304b\u52d5\u304b\u3057\u3066\u306a\u3044\u306e\u306b RAM \u6e1b\u3063\u3066\u308b\u306a\u3068 htop \u898b\u308b\u3068 WebKit* \u306a\u30d7\u30ed\u30bb\u30b9\u304c\u5c45\u307e\u3059\uff0eRaphael \u304b\u3089 \u547c\u3093\u3067\u3044\u308b\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n

\"raphael

\n
\n
\n
\n
$ pstree -pTZ `pgrep raphael` | awk -F\\( '{print $2}'| awk -F, '{print $1}' | xargs -I{} grep VmHWM /proc/{}/status | awk '{a+=$2} END{print a;}'\n888836
\n
\n
\n
\n

WebKit\u306f\u6700\u8fd1\u306e\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3068\u9055\u3044\u30bf\u30d6\u6bce\u306b\u30d7\u30ed\u30bb\u30b9\u304c\u8d77\u52d5\u3057\u306a\u3044\u3068\u601d\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0cWebKit 2.26 \u304b\u3089\u30bf\u30d6\u6bce\u306b\u30d7\u30ed\u30bb\u30b9\u304c\u8d77\u52d5\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e
\n\u3061\u306a\u307f\u306b\u74b0\u5883\u5909\u6570 WEBKIT_USE_SINGLE_WEB_PROCESS=1 \u3067\u30d7\u30ed\u30bb\u30b9\u5897\u3048\u306a\u3044\u3088\u3046\u306b\u51fa\u6765\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n

For 2.26 you can set the env var WEBKIT_USE_SINGLE_WEB_PROCESS=1. This
\nis a temporary solution, only available in 2.26, to give apps more time
\nto adapt to the multiprocess model.

\n
\n
\n
\n\u2014 Re: [webkit-gtk Deprecation of shared-secondary-process mode]
\n
\n
\n
\n
\n

Add WEBKIT_USE_SINGLE_WEB_PROCESS environment variable to force single process model in all WebKitWebContext. This is a temporary solution for applications still depending on the single process mode behavior. It will be only available in 2.26 series.

\n
\n
\n\n
\n
\n
\n
\n

Webkit process limit

\n
\n
\n

Since Webkit 2.26, the webkit engine used in luakit is creating a new process for each tab. This has the benefit that a webkit webview crash will only crash one tab. The downside is lower performance and increased memory use.

\n
\n
\n

If you value speed over stability, you can ask webkit to use one process for all tabs by setting WEBKIT_USE_SINGLE_WEB_PROCESS before starting luakit:

\n
\n
\n

$ export WEBKIT_USE_SINGLE_WEB_PROCESS=1

\n
\n
\n\n
\n
\n

WEBKIT_USE_SINGLE_WEB_PROCESS=1 \u3067\u6614\u306e\u3088\u3046\u306b\u30d7\u30ed\u30bb\u30b9\u5897\u3048\u306a\u3044\u3088\u3046\u306b\u3067\u304d\u307e\u3057\u305f\u304c1\u30bf\u30d6\u3057\u304b\u958b\u3044\u3066\u306a\u304f\u3066\u3082 800MB\u301c1GB \u304f\u3089\u3044\u306f\u6d88\u8cbb\u3057\u3066\u3057\u307e\u3046\u611f\u3058\u3067\u3059\uff0e\u601d\u3063\u305f\u3088\u308a\u6d88\u8cbb\u3057\u307e\u3059\u2026\u2026\uff0e

\n
\n
\n
\n
\n

\u62e1\u5f35\u6a5f\u80fd

\n
\n
\n

Raphael \u306b\u306f\u3044\u304f\u3064\u304b\u306e\u62e1\u5f35\u6a5f\u80fd\u304c\u7d44\u307f\u8fbc\u307e\u308c\u3066\u3044\u3066\uff0c\u8a2d\u5b9a\u304b\u3089\u78ba\u8a8d\u304c\u3067\u304d\u307e\u3059\uff0e

\n
\n
\n

\"raphael

\n
\n
\n

\u3044\u3064\u3082 Firefox \u3084 Chromium \u3067\u6ca2\u5c71\u306e\u62e1\u5f35\u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u3044\u308b\u3068\u8db3\u308a\u306a\u304f\u611f\u3058\u307e\u3059\uff0e\u62e1\u5f35\u6a5f\u80fd\u3092\u8ffd\u52a0\u3059\u308b\u306b\u306f\u3061\u3083\u3093\u3068\u8abf\u3079\u3066\u3044\u307e\u305b\u3093\u304c\u6050\u3089\u304f\u30d3\u30eb\u30c9\u6642\u306b\u7d44\u307f\u8fbc\u307e\u306a\u3044\u3068\u3044\u3051\u306a\u3055\u305d\u3046?
\n\u30d1\u30b9\u30ef\u30fc\u30c9\u30de\u30cd\u30fc\u30b8\u30e3\u304c\u307b\u3057\u3044\u3068\u3053\u3067\u3059\uff0e

\n
\n
\n

\u3061\u306a\u307f\u306b Raphael \u306e\u62e1\u5f35\u6a5f\u80fd\u306fVala \u3067\u66f8\u304b\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
\n

\u985e\u4f3c\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6

\n
\n
\n

WebKit\u30d9\u30fc\u30b9\u306e\u985e\u4f3c\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067\u3059\uff0e

\n
\n\n
\n

\u3069\u3061\u3089\u3082Debian package\u304c\u3042\u308b\u306e\u3067\u3053\u308c\u3089\u306e\u307b\u3046\u304c\u304a\u624b\u8efd\u306b\u8a66\u305b\u308b\u306e\u3067\u3044\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e

\n
\n
\n
\n", "content_text": "\u6700\u8fd1\u306e\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u306f\u3068\u3066\u3082\u30ea\u30bd\u30fc\u30b9\u98df\u3044\u3067\u3059\uff0e\u7279\u306b\u30e1\u30e2\u30ea\uff0e\u3044\u304f\u3089\u3042\u3063\u3066\u3082\u8db3\u308a\u307e\u305b\u3093><\n\n\n\u8efd\u91cf\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3082\u3042\u308a\u307e\u3059\u304c\uff0c\u6a5f\u80fd\u304c\u8db3\u308a\u305a\u52d5\u304b\u306a\u3044\u30b5\u30a4\u30c8\u304c\u591a\u3044\u3067\u3059\uff0e\n\n\n\nDillo (\u6700\u8fd1reboot)\nNetSurf\nMidori(WebKit\u7248)\n:\n\n\n\nMidori \u306fWebKit\u7248\u306e\u9803\u306f\u8efd\u91cf\u3060\u3051\u3069\u5927\u62b5\u306esite \u306f\u52d5\u3044\u3066\u3044\u305f\u8a18\u61b6\u304c\u3042\u308a\u307e\u3059\uff0e\u3057\u304b\u3057\u305d\u306e\u5f8c Electron(Blink)\u30d9\u30fc\u30b9(Midori 10)\uff0cFirefox(Gekko)\u30d9\u30fc\u30b9\u306e Floorp \u30d9\u30fc\u30b9(Midori 11) \u3068\u306a\u308a\u91cd\u91cf\u7d1a\u306b\uff0e\n\u4eca\u56de Midori WebKit\u7248\u6642\u4ee3\u304b\u3089\u306e\u30d5\u30a9\u30fc\u30af\u306eRaphael \u3092\u77e5\u3063\u305f\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\nMidnightBSD/raphael: Raphael Web Browser\n\n\n\nRaphael \u306f\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u5411\u3051BSD \u306eMidnightBSD \u304c\u30e1\u30f3\u30c6\u3057\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e\n\n\n\n\n\n\u2014 MidnightBSD\n\n\n\n\nDebian bookworm amd64 / Raspberry Pi OS bookworm armhf \u3067 build\n\n\n\u3068\u308a\u3042\u3048\u305a\uff0c\u624b\u5143\u306e Debian bookworm amd64 / Raspberry Pi OS bookworm armhf \u3067 build \u3057\u307e\u3057\u305f\uff0e\u4f9d\u5b58\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5165\u308c\u305f\u3089\u3055\u304f\u3063\u3068\u901a\u308a\u307e\u3057\u305f\uff0e\n\n\n\n$ sudo apt install cmake valac libwebkit2gtk-4.0-dev libgcr-3-dev libpeas-dev \\\n libsqlite3-dev libjson-glib-dev libarchive-dev intltool libxml2-utils\n$ wget -c https://github.com/MidnightBSD/raphael/archive/refs/tags/9.1.tar.gz\n$ tar xf 9.1.tar.gz\n$ cd raphael-9.1\n$ mkdir _build && cd _build\n$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..\n$ make\n$ sudo make install\n\n\n\n\n\n\u8d77\u52d5\n\n\n\u666e\u901a\u306b\u8d77\u52d5\uff0e\n\n\n\n\u65e5\u672c\u8a9e\u3082\u554f\u984c\u3042\u308a\u307e\u305b\u3093\n\n\n\n\u52d5\u753b\u3082\u518d\u751f\u3067\u304d\u307e\u3059\n\n\n\n\nSNS \u306a\u3093\u304b\u3082\n\n\n\n\u305d\u306e\u4ed6\uff0c\u3044\u308d\u3044\u308d\u306a\u30a6\u30a7\u30d6\u30b5\u30fc\u30d3\u30b9\u3092\u8a66\u3057\u307e\u3057\u305f\u304c\u3060\u3044\u305f\u3044\u554f\u984c\u306a\u304b\u3063\u305f\u3067\u3059\uff0e\u3057\u304b\u3057 Zoom.us \u3067\u306f\u300c\u30aa\u30fc\u30c7\u30a3\u30aa\u306b\u63a5\u7d9a\u4e2d\u300d\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304b\u3089\u9032\u307e\u305a\u53c2\u52a0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff0e\n\n\n\n\n\n\n\n\u30e1\u30e2\u30ea\u6d88\u8cbb\u91cf\n\n\nRaphael \u304f\u3089\u3044\u3057\u304b\u52d5\u304b\u3057\u3066\u306a\u3044\u306e\u306b RAM \u6e1b\u3063\u3066\u308b\u306a\u3068 htop \u898b\u308b\u3068 WebKit* \u306a\u30d7\u30ed\u30bb\u30b9\u304c\u5c45\u307e\u3059\uff0eRaphael \u304b\u3089 \u547c\u3093\u3067\u3044\u308b\u3088\u3046\u3067\u3059\uff0e\n\n\n\n\n\n\n$ pstree -pTZ `pgrep raphael` | awk -F\\( '{print $2}'| awk -F, '{print $1}' | xargs -I{} grep VmHWM /proc/{}/status | awk '{a+=$2} END{print a;}'\n888836\n\n\n\nWebKit\u306f\u6700\u8fd1\u306e\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3068\u9055\u3044\u30bf\u30d6\u6bce\u306b\u30d7\u30ed\u30bb\u30b9\u304c\u8d77\u52d5\u3057\u306a\u3044\u3068\u601d\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0cWebKit 2.26 \u304b\u3089\u30bf\u30d6\u6bce\u306b\u30d7\u30ed\u30bb\u30b9\u304c\u8d77\u52d5\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e\n\u3061\u306a\u307f\u306b\u74b0\u5883\u5909\u6570 WEBKIT_USE_SINGLE_WEB_PROCESS=1 \u3067\u30d7\u30ed\u30bb\u30b9\u5897\u3048\u306a\u3044\u3088\u3046\u306b\u51fa\u6765\u307e\u3057\u305f\uff0e\n\n\n\n\nFor 2.26 you can set the env var WEBKIT_USE_SINGLE_WEB_PROCESS=1. This\nis a temporary solution, only available in 2.26, to give apps more time\nto adapt to the multiprocess model.\n\n\n\n\u2014 Re: [webkit-gtk Deprecation of shared-secondary-process mode]\n\n\n\n\nAdd WEBKIT_USE_SINGLE_WEB_PROCESS environment variable to force single process model in all WebKitWebContext. This is a temporary solution for applications still depending on the single process mode behavior. It will be only available in 2.26 series.\n\n\n\n\u2014 WebKitGTK 2.25.92 released! – The WebKitGTK Project\n\n\n\n\nWebkit process limit\n\n\nSince Webkit 2.26, the webkit engine used in luakit is creating a new process for each tab. This has the benefit that a webkit webview crash will only crash one tab. The downside is lower performance and increased memory use.\n\n\nIf you value speed over stability, you can ask webkit to use one process for all tabs by setting WEBKIT_USE_SINGLE_WEB_PROCESS before starting luakit:\n\n\n$ export WEBKIT_USE_SINGLE_WEB_PROCESS=1\n\n\n\n\u2014 Webkit process limit\nluakit/README.md at develop \u00b7 luakit/luakit\n\n\nWEBKIT_USE_SINGLE_WEB_PROCESS=1 \u3067\u6614\u306e\u3088\u3046\u306b\u30d7\u30ed\u30bb\u30b9\u5897\u3048\u306a\u3044\u3088\u3046\u306b\u3067\u304d\u307e\u3057\u305f\u304c1\u30bf\u30d6\u3057\u304b\u958b\u3044\u3066\u306a\u304f\u3066\u3082 800MB\u301c1GB \u304f\u3089\u3044\u306f\u6d88\u8cbb\u3057\u3066\u3057\u307e\u3046\u611f\u3058\u3067\u3059\uff0e\u601d\u3063\u305f\u3088\u308a\u6d88\u8cbb\u3057\u307e\u3059\u2026\u2026\uff0e\n\n\n\n\n\u62e1\u5f35\u6a5f\u80fd\n\n\nRaphael \u306b\u306f\u3044\u304f\u3064\u304b\u306e\u62e1\u5f35\u6a5f\u80fd\u304c\u7d44\u307f\u8fbc\u307e\u308c\u3066\u3044\u3066\uff0c\u8a2d\u5b9a\u304b\u3089\u78ba\u8a8d\u304c\u3067\u304d\u307e\u3059\uff0e\n\n\n\n\n\n\u3044\u3064\u3082 Firefox \u3084 Chromium \u3067\u6ca2\u5c71\u306e\u62e1\u5f35\u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u3044\u308b\u3068\u8db3\u308a\u306a\u304f\u611f\u3058\u307e\u3059\uff0e\u62e1\u5f35\u6a5f\u80fd\u3092\u8ffd\u52a0\u3059\u308b\u306b\u306f\u3061\u3083\u3093\u3068\u8abf\u3079\u3066\u3044\u307e\u305b\u3093\u304c\u6050\u3089\u304f\u30d3\u30eb\u30c9\u6642\u306b\u7d44\u307f\u8fbc\u307e\u306a\u3044\u3068\u3044\u3051\u306a\u3055\u305d\u3046?\n\u30d1\u30b9\u30ef\u30fc\u30c9\u30de\u30cd\u30fc\u30b8\u30e3\u304c\u307b\u3057\u3044\u3068\u3053\u3067\u3059\uff0e\n\n\n\u3061\u306a\u307f\u306b Raphael \u306e\u62e1\u5f35\u6a5f\u80fd\u306fVala \u3067\u66f8\u304b\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e\n\n\n\n\n\u985e\u4f3c\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\n\n\nWebKit\u30d9\u30fc\u30b9\u306e\u985e\u4f3c\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067\u3059\uff0e\n\n\n\nLuakit Web Browser\nqutebrowser | qutebrowser\n\n\n\n\u3069\u3061\u3089\u3082Debian package\u304c\u3042\u308b\u306e\u3067\u3053\u308c\u3089\u306e\u307b\u3046\u304c\u304a\u624b\u8efd\u306b\u8a66\u305b\u308b\u306e\u3067\u3044\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e", "date_published": "2024-06-30T22:28:41+09:00", "date_modified": "2024-06-30T22:30:28+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Raphael", "Web browser", "WebKit", "bookworm", "bookworm", "Debian", "Linux", "Raspberry Pi OS" ] } ] }