Bun(번) 런타임 환경에서 Redis(레디스)의 강력한 데이터 구조와 Pub/Sub(발행/구독) 기능을 활용하고 싶지만, 별도의 Redis 서버를 구축하고 관리하는 부담을 느끼는 개발자들을 위한 새로운 솔루션, ‘Bundis’가 등장했습니다. 이 프로젝트는 SQLite(SQLite) 데이터베이스를 기반으로 Redis와 호환되는 서버를 구현하여, Bun 애플리케이션 내에서 Redis 스타일의 API를 손쉽게 사용할 수 있도록 돕습니다. Bun.RedisClient(번.레디스클라이언트)의 접속 URL만 Bundis 서버로 변경하면 기존 코드를 수정할 필요 없이 즉시 Redis 기능을 활용할 수 있다는 점이 가장 큰 장점입니다.
Bundis는 Redis 서버를 직접 설치하거나 네이티브 의존성을 가질 필요 없이, Bun에 내장된 bun:sqlite와 Bun.listen 기능을 활용합니다. 데이터는 SQLite 단일 파일에 영속적으로 저장(WAL 모드)되어 애플리케이션이 재시작되어도 유실되지 않으며, 읽기 성능 향상을 위해 인메모리 핫 캐시(write-through, 적응형 idle eviction, LRU 바이트 상한)를 제공합니다. 콜드 스타트 시간은 데이터 크기와 무관하게 약 13ms로 매우 빠르며, 이는 Redis의 RDB/AOF 파일 재생 과정이 없기 때문입니다. Bundis는 프로세스 내 임베드, 사이드카 스폰, 독립 데몬(bunx) 등 세 가지 방식으로 실행할 수 있어 개발 환경에 맞춰 유연하게 적용 가능합니다.
이러한 Bundis의 등장은 특히 1인 개발자나 소규모 팀에게 큰 의미를 가집니다. 복잡한 인프라 구축과 운영 없이도 Redis의 핵심 기능을 활용할 수 있게 되어 개발 생산성을 높이고, 애플리케이션 배포 및 관리를 간소화할 수 있습니다. 물론 Bundis는 Redis 클러스터, 고가용성(HA), Lua 스크립팅, 모든 Redis 명령어를 지원하지는 않으며, Redis 자체의 처리량 성능을 목표로 하지 않습니다. 하지만 Bun 환경에서 디스크 영속성과 Redis API를 동시에 제공하며 운영 편의성을 극대화한다는 점에서, 특정 사용 사례에 매우 강력한 대안이 될 수 있습니다.