- 모바일 및 데스크톱 모두를 지원하며, 다양한 하드웨어에서 실행 가능한 최소한의 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 애드온 지원
-
libjs
와 libuv
기반으로 네이티브 애드온 작성 가능
- 다양한 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 앱을, 하나의 코드베이스로, 어떤 장치에서든 실행할 수 있음