QuickJS RB는 QuickJS 엔진을 활용하여 Ruby에서 JavaScript 코드를 평가하고 일관된 런타임 환경을 제공합니다. QuickJS는 Fabrice Bellard가 개발한 경량 C 기반 JavaScript 엔진으로, ECMAScript 2023 사양 지원 및 작은 바이너리 크기가 특징입니다. 이 젬은 Persona의 “Custom Code” 기능에서 FaaS 사용으로 인한 지연 시간, 관리 복잡성, 비용 문제를 해결하고자 개발되었습니다. 발표자는 공개된 Ruby 바인딩이 없어 직접 개발에 착수했으며, Ruby의 네이티브 확장 기능과 외부 자료, AI의 도움을 받아 점진적인 C 구현 방식으로 진행했습니다.
QuickJS RB는 샌드박싱으로 보안을 강화하고, 주변 기능으로 국제화 API 보완 및 JavaScript 코드 컴파일을 통한 성능 향상을 제공합니다. 또한, Ruby 인터페이싱을 통해 ES 모듈 임포트, 콘솔 로깅, Ruby 함수 호출 등을 지원하며, 특히 Ruby 함수 호출 기능은 백엔드 로직을 JavaScript 환경에 노출하고 투명한 예외 처리를 가능하게 합니다.