로컬 우선 macOS 리서치 브라우저로, 웹 앱 리버스 엔지니어링을 위해 네트워크 트래픽, 핑거프린트, 스크립트, 런타임 증거를 캡처하는 커스텀 Brave 빌드 기반입니다.
저장소 루트에서 make를 실행합니다. 루트 Makefile은 기본 목표를 정의하고 다음 파일들을 순서대로 포함합니다:
| 파일 | 역할 |
|---|---|
config.mk | 컴파일러 플래그, 빌드 디렉터리, lint용 소스 목록, 플랫폼 기본값 |
native.mk | 명시적 네이티브 링크 의존성, 컴파일, 생성된 헤더 의존성 |
workflows.mk | 제품 실행, 증거 픽스처, 로컬 서비스, Brave 통합 명령 |
quality.mk | 빌드 회귀 검사, 린터, 새니타이저, 정리 |
기존 명령 이름과 실행 파일 경로는 공개 인터페이스로 유지됩니다. 구현 오브젝트는 BUILD_DIR 내부의 소스 경로를 그대로 반영하며, 컴파일러가 생성한 .d 파일은 직접 및 전이 프로젝트 헤더를 추적합니다. 디코더 실행 파일만 링크 명령에 zlib를 추가합니다. make native-probe-compile은 별도의 테스트 소스 없이 추적된 브라우저 큐를 컴파일합니다.
make bootstrap-dev-tools는 CI에서 사용하는 것과 동일한 고정 버전의 clang-format과 Ruff를 ~/.local/share/reb-tools에 설치하고, 누락된 shellcheck 및 actionlint formulae를 Homebrew로 설치합니다. Make는 해당 고정 로컬 도구들을 자동으로 우선 사용합니다. make deob-benchmark는 Rust 워커를 빌드하고 타이밍, 메모리, 변환, 변경된 소스 커버리지 증거와 함께 제한된 시맨틱 코퍼스를 실행합니다.
make lint는 두 Rust 매니페스트 모두에 대해 포맷팅과 Clippy 경고를 검사합니다. 난독화 해제 워커는 모든 타깃을 포함하므로 회귀 테스트 코드도 프로덕션 실행 파일과 함께 검사됩니다.
다른 컴파일러나 플래그 집합을 사용하려면 별도의 빌드 디렉터리를 사용하십시오:
make BUILD_DIR=build/debug OPT_CXXFLAGS='-O0 -g' all
Make는 기존 빌드 디렉터리에서 명령줄 플래그 값의 변경을 감지하지 않습니다. 네이티브 규칙이나 컴파일러 구성 파일의 변경은 네이티브 오브젝트를 무효화합니다. make sanitize는 자체적인 깨끗한 빌드 디렉터리를 사용합니다.
make native-build-test는 scripts/check-native-build.sh를 실행하며, 이 스크립트는 임시 디렉터리에서 두 개의 독립적인 실행 파일을 빌드하고 실행하고, 반복 빌드가 아무 작업도 하지 않는지 확인하며, 아티팩트 헤더 변경이 이벤트 데모를 다시 빌드하지 않고도 해당 소비자를 무효화하는지 검증합니다. make check는 이 회귀 검사, 난독화 해제 시맨틱 벤치마크, 그리고 백엔드 및 난독화 해제 워커의 Rust 테스트 스위트를 포함합니다. 또한 빌드된 Rust/Oxc 워커에 대해 소스 팩트 HTTP/CLI 통합 테스트를 실행하며, 해당 헬퍼를 찾을 때 CARGO_TARGET_DIR이 존중됩니다.
make native-proxy-policy-check는 Chromium, Cargo, 소켓, 브라우저 없이 준비 전용 네이티브 프록시/컨테이너 정책 스위트를 컴파일하고 실행합니다. 이는 make check와 make sanitize에 포함되며, 실제 브라우저 라우팅이나 격리를 수립하지는 않습니다. 버전 관리되는 네이티브 프록시-컨테이너 계약을 참조하십시오.
origin-trace-backend는 Rust HTTP 서비스, VM 분석기, API CLI를 빌드합니다. ui는 결정론적 증거 생성 후 해당 서비스를 시작합니다. backend-e2e는 일회용 Chromium 호환 프로필과 합성 localhost 픽스처를 사용하며, 비표준 브라우저 실행 파일을 사용하려면 ORIGIN_TRACE_TEST_BROWSER를 설정하십시오. 앱 빌드는 Rust 실행 파일과 정적 UI 자산을 번들로 묶으며, Python 런타임 의존성이 없습니다.