RepoPilot

ladybirdbrowser / ladybird

Search ladybirdbrowser/ladybird

GitHub

Code

How ladybirdbrowser/ladybird is laid out, and where to start for common changes.

A
Architecture grade
score 100/100
0
Import cycles
lower is better
94
Files mapped
12 imports between them
100%
Layering
of imports point one way

From the map of which files import which, built when the code was last read in full. It shows what depends on what, not a reading order.

Module map

Shade by
StandaloneLibraries5363 files · 100+ commitsAK213 files · 100+ commitsMeta137 files · 100+ commits

3 modules, 0 links. A link means one module imports another; thicker lines mean more imports. Links come from 94 of 6,070 source files, so the real counts are higher. Select a module to trace it: blue lines go to what it uses, orange lines come from what uses it.

Libraries536300100+Standalone
AK21300100+Standalone
Meta13700100+Standalone

Where to start reading

  1. Repository root
  2. Repository root
  3. Likely public API
  4. Likely public API
  5. Likely start-up file
  6. Likely start-up file
  7. Suggested starting pointAI
  8. Suggested starting pointAI

Find files for a task

AI

Add a new IPC service

  • Register the service in the main process launcher (likely in UI/Qt or main browser entry)

Add a new web standard feature to the rendering engine

  • Extend DOM element classes with new properties/methods following Libraries/LibWeb/ARIA/ARIAMixin.cpp pattern
  • Add JavaScript bindings in LibJS/ABI for script access

Add a new network protocol handler

  • Create protocol implementation in RequestServer following Services/RequestServer/AIA.cpp pattern
  • Define DNS or TLS requirements if needed using Libraries/LibDNS and Libraries/LibTLS
  • Integrate with LibRequests HTTP client following Libraries/LibRequests/ALPNHttpVersion.h
  • Add build configuration and link against RequestServer in CMakeLists.txt

Add a new media codec or audio device backend

  • Implement codec in Libraries/LibMediaCodecs following Libraries/LibMediaCodecs/AudioBlockTiming.h structure
  • For audio devices, add platform-specific backend (e.g. macOS) in Services/AudioServer/AudioDevicesCoreAudio.cpp
  • Integrate audio buffer management from Libraries/LibMedia/Audio/AudioBuffer.h
  • Expose through IPC via Libraries/LibAudio/AudioClient.ipc

Change the public API

Trace runtime behavior

Add or update tests

Change build or automation

RepoPilot lists up to 500 files, so a file missing here may still exist.

  • Files marked “likely” are guessed from their names.

Code quality and hotspots

Largest source files

  • Branch points237 per file on average
  • Code issues0 errors, 102 warnings
  • Largest file4,087 lines
  • Hotspot load10 high-risk files

Static checks on the 15 largest source files.

Tests, CI and tooling

  • CIGitHub Actions17 workflows
  • Tests29,073 test filesRust test · 4.8 test files per source file (file count, not coverage)
  • Dependency updatesNo config detected

Test folders: Libraries/LibWasm/Engine/tests/fixtures · Libraries/LibJS/Flap/tests · Libraries/LibWasm/Engine/tests

Hotspots

Files that change often and branch heavily, highest first. Branch points count if, loop, case, catch, ternary, && and || in the file.