본문으로 건너뛰기

트렌딩 - GitHub 인기 레포 & HuggingFace 모델

lexmount/moli

Rust0 / 0

DOM을 먼저 처리하고 layout·paint는 필요할 때만 실행하는 Rust 기반 headless browser입니다.

TL;DR

Moli는 Rust로 작성한 standalone headless browser kernel이자 CLI tool로, AI agent의 웹 추출과 browser automation을 위해 설계됐습니다. 기본값에서는 native DOM과 style 상태를 직접 읽어 layout·paint를 생략하고, geometry·coordinate input·screenshot이 필요할 때만 `--layout`으로 최신 layout tree와 frame을 생성합니다. CLI·CDP·WebDriver Classic·WebDriver BiDi를 지원하고 Playwright를 CDP로 연결할 수 있어 기존 자동화 client를 활용하기 쉽습니다. 공개 benchmark에서 Moli는 Chrome보다 task success rate와 웹 호환성이 낮지만, 측정 조건에서 더 작은 RSS와 peak memory를 기록했습니다. Chrome 수준의 pixel parity와 Canvas/WebGL·media playback이 필요하지 않고 구조 중심의 crawling·retrieval·evaluation workload를 운영한다면 검토할 가치가 있습니다.

핵심 포인트

  • Moli는 Chromium wrapper가 아닌 Rust 기반 standalone headless browser kernel이며 CLI와 CDP·WebDriver Classic·WebDriver BiDi를 한 바이너리로 제공합니다. Linux·macOS·Windows에서 실행되고 Playwright는 CDP로 연결할 수 있습니다. 별도 ChromeDriver나 geckodriver 없이 AI agent의 웹 추출과 자동화 작업에 사용할 수 있습니다.
  • 기본 동작은 DOM과 style 상태를 직접 읽어 layout과 paint를 건너뛰는 구조이며 시각 정보가 필요할 때만 `--layout`으로 계산합니다. geometry 요청은 최신 `FrozenLayoutTree`를 보존하고 screenshot·screencast는 새 layout과 frame을 만든 뒤 폐기합니다. 이 방식은 지속적인 시각 상태가 필요 없는 crawling·retrieval·evaluation workload의 자원 사용을 줄이는 데 초점을 둡니다.
  • `moli fetch`는 HTML·Markdown·JSON·semantic text tree와 screenshot·PDF를 출력하고 selector·script·response wait와 network tracing을 지원합니다. `moli serve`는 CDP·WebDriver Classic·WebDriver BiDi endpoint를 제공하며 `--resource`로 image·font·audio·video 같은 선택 자원을 켤 수 있습니다. 기본값에서 고비용 시각 처리를 끄고 필요한 기능만 명시적으로 활성화하는 운영 모델입니다.
  • README의 공개 비교에서 Moli는 192개 URL 중 유용한 페이지 103개와 53.6% 성공률을 기록했으며 median RSS는 73 MiB였습니다. Lexbench 비교에서는 1,308개 comparable task 기준 81.9%로 Chrome 99.8%보다 낮았지만 Kitesurf 62.1%·Lightpanda 53.3%·Obscura 44.9%보다 높았습니다. 반면 전체 1,928개 corpus 기준 수치가 아니며 Chrome 수준의 pixel parity·Canvas/WebGL·media playback은 목표 범위가 아닙니다.

벤치마크

벤치마크지표비교
Mixed public-web crawl testsuccess rate53.6%Moli의 192개 public URL 측정값이며 Chrome Headless 52.6%, Lightpanda 44.3%, Obscura 29.7%와 비교됐다.
Mixed public-web crawl testuseful pages103Moli의 유용한 페이지 수이며 Chrome Headless 101, Lightpanda 85, Obscura 57과 비교됐다.
Mixed public-web crawl testmedian RSS73 MiBMoli의 측정값이며 Chrome Headless 773 MiB, Lightpanda 40 MiB, Obscura 39 MiB와 비교됐다.
Sample agent workloadCDP ready34.85 msMoli의 측정값이며 Chromium 169.37 ms와 비교됐다.
Sample agent workloadEpisode active p5033.40 msMoli의 측정값이며 Chromium 57.13 ms와 비교됐다.
Sample agent workloadPeak PSS102.46 MiBMoli의 측정값이며 Chromium 348.82 MiB와 비교됐다.
WPT testspassed tests1.612 millionMoli의 현재 agent-browser scope 검증용 WPT full run 수치이며 다른 엔진과의 비교값은 README에 없다.
Lexbench-Headless-Browsertask success rate81.88% (1,071/1,308 tasks)Moli 0.1.1의 1,308개 comparable task 측정값이며 Chrome 99.85%, Kitesurf 62.08%, Lightpanda 53.29%, Obscura 44.88%와 비교됐다.
Lexbench-Headless-Browsermedian CPU time per task100.6 ms네 로컬 엔진이 모두 수행한 별도 557-task run의 Moli 측정값이며 Chrome 687 ms와 비교됐다.
Lexbench-Headless-Browsermedian peak memory per task92 MiB네 로컬 엔진이 모두 수행한 별도 557-task run의 Moli 측정값이며 Chrome 697 MiB와 비교됐다.

이미지 분석

Moli가 HTML5 game을 렌더링하고 Chrome DevTools에서 실행 중인 화면을 검사하는 장면입니다.
이미지는 Moli가 단순 HTML 추출을 넘어 HTML5 game 화면과 live DevTools 검사 환경을 제공하는 사례를 담고 있습니다. README가 설명한 on-demand layout·software rendering·DOM 검사 기능이 실제 게임 화면과 함께 제시되지만, 이 한 장면만으로 Chrome과의 시각적 동등성을 판단할 수는 없습니다.
Moli로 렌더링한 rust-lang.org를 Chrome DevTools에서 DOM·CSS·geometry와 함께 검사하는 화면입니다.
브라우저 화면 왼쪽에는 rust-lang.org 페이지가, 오른쪽에는 선택된 heading의 DOM·CSS 속성과 geometry 정보가 나타납니다. 이는 Moli가 native DOM과 style 상태를 유지하고 Chrome DevTools 연결을 통해 live 구조를 검사할 수 있다는 README의 사용 사례와 직접 연결됩니다.
1,308개 comparable task에서 다섯 headless browser의 task success rate를 비교한 막대 차트입니다.
차트는 Chrome 99.8%, Moli 81.9%, Kitesurf 62.1%, Lightpanda 53.3%, Obscura 44.9%의 task success rate를 비교합니다. Moli가 Chrome보다 낮지만 차트에 포함된 다른 네 엔진 중 세 엔진보다 높은 수치를 기록했다는 상대적 위치를 빠르게 확인할 수 있습니다.
Lexbench-Headless-Browser에서 task success rate와 task별 median peak process-tree memory를 함께 비교한 산점도입니다.
차트는 Chrome 99.9%·697 MiB, Moli 80.7%·92 MiB, Lightpanda 43.8%·34 MiB, Obscura 39.5%·39 MiB를 배치해 성공률과 메모리 사용의 관계를 나타냅니다. Moli는 Chrome보다 낮은 성공률과 훨씬 작은 memory footprint 사이에 위치하며, README의 자원 효율성 비교를 시각적으로 뒷받침합니다.

853

Stars

53

Forks

+206

Trending

0

조회수

853 watchers20 open issuesApache License 2.0

관련 토론

아직 관련 토론이 없습니다.

댓글

댓글을 작성하려면 로그인이 필요합니다.