16P by xguru 12일전 | ★ favorite | 댓글과 토론
  • 모바일 및 데스크톱 모두를 지원하며, 다양한 하드웨어에서 실행 가능한 최소한의 JavaScript 런타임
  • 비동기 이벤트 기반 아키텍처로 모듈성, 범용성, 경량성에 집중
  • P2P 애플리케이션 개발과 크로스플랫폼 앱에 최적화

주요 기능

  • 완전 모듈화 구조

    • 표준 라이브러리 없음 → 필요한 기능만 가져다 쓰는 모듈 방식
    • 예: bare-fs, bare-http1, bare-crypto, bare-zlib, bare-stream
    • 필요한 기능만 설치하고 사용하는 구조로 가벼운 런타임 환경 구성 가능
  • ESM & CommonJS 호환

    • require()import 모두 사용 가능
    • 두 모듈 시스템이 혼합된 환경에서도 자유롭게 상호 작용
  • 모바일 최적화 지원

    • Bare Kit을 사용해 모바일에 JavaScript 런타임 내장 가능
    • react-native-bare-kit을 통해 Android 및 iOS에 쉽게 통합
    • IPC 통신 지원, React Native 앱에서 Bare 워크릿 실행 가능
  • Native 애드온 지원

    • libjslibuv 기반으로 네이티브 애드온 작성 가능
    • 다양한 JavaScript 엔진(V8, JavaScriptCore, QuickJS) 지원
    • N-API 심볼 대부분 사용 가능

Bare의 철학: 단순함이 곧 강력함

  • Bare는 작고 모듈화된 런타임 구조로, 데스크톱과 모바일 모두에서 성능 저하 없이 실행 가능
  • Node.js처럼 비동기 이벤트 기반 아키텍처를 제공하지만, 임베딩과 기기간 호환성을 핵심으로 설계

Bare로 만들 수 있는 것들

  • P2P 애플리케이션

    • Holepunch 스택 기반으로 실시간 데이터 스트리밍, 파일 공유, 커뮤니케이션 앱 등을 빠르게 구축 가능
    • Keet, Pear 같은 서버 없는 통신·공유 앱 제작 가능
    • WebRTC 없이도 고성능 실시간 통신 지원
    • 경량 구조와 모듈화 덕분에 확장성과 효율성 모두 확보
  • 탈중앙 네트워크

    • 서버 없는 구조로 블록체인 수준의 분산성 실현
    • 디파이, 데이터 공유, 비공개 네트워크 등 다양한 분산 앱에 적합
  • 고효율 데이터 공유

    • 미디어 라이브러리, 실시간 게임, 영상 스트리밍 등에 적합
    • 빠르고 안정적인 동기화와 스트리밍 지원
  • 자급자족형 크로스 플랫폼 앱

    • 한번 작성한 모듈을 모바일과 데스크톱 양쪽에 재사용 가능
    • 예: 푸시 알림, 영상 재인코딩, 암호화 작업 등 저사양 환경에서도 원활하게 동작

성능 및 확장성

  • V8, JavaScriptCore, QuickJS 등 다양한 JS 엔진 지원
  • LibJS 연동을 통해 기존 런타임과 호환성 유지
  • Native 수준의 성능을 확보하기 위해 fastcall 적용
  • 기술 리더 Kasper Isager: "Bare는 어디에서든 실행될 수 있도록 설계되었음 — 컴퓨터부터 휴대폰, 임베디드까지"

Pear + Bare = 완전한 P2P 개발 스택

  • Pear 는 P2P 런타임, 개발 및 배포 도구를 통합한 플랫폼
  • Bare 기반 앱은 Holepunch의 Pear Runtime에서 작동하며 서버 없이도 동작 가능한 완전한 P2P 환경 제공
  • 서버 비용 없음, 데이터 프라이버시 완전 보장
  • Pear는 자동 업데이트 되며 Bare 런타임도 함께 포함됨
  • 이 조합은 완전히 새로운 경량 컨테이너 모델 제공

마무리

  • Bare는 JavaScript의 진정한 범용성과 효율성을 실현한 혁신적인 런타임
  • Holepunch 팀 내부에서도 한 번 작성한 코드로 모바일 + 데스크톱 앱을 동시에 배포
  • 진정한 의미의 "Write Once, Run Anywhere" 구현
  • 이제는 서버 없는 완전한 P2P 앱을, 하나의 코드베이스로, 어떤 장치에서든 실행할 수 있음