ranuts
프런트엔드와 Node를 위한 유틸리티 라이브러리로, 서로 독립적이고 트리 셰이킹이 되는 진입점으로 공개됩니다. 필요한 것을 담고 있는 하위 경로에서 import하면 나머지는 번들에 들어가지 않습니다. 전부 TypeScript로 쓰였고, 모든 export가 소스에서 문서화됩니다.
- npm:
ranuts· 소스:packages/ranuts
npm install ranutsimport { debounce } from 'ranuts/utils';진입점
| import | 담긴 것 | 실행 환경 |
|---|---|---|
ranuts | 최상위 배럴: utils와 visual을 아우르는 면 | 브라우저 + Node |
ranuts/utils | DOM/BOM, 문자열, 객체, 숫자, 색, 시간, 스토리지 … | 브라우저 + Node* |
ranuts/node | HTTP 서버, 라우터, WebSocket, fs, 스트림, 미들웨어 | Node 전용 |
ranuts/visual | 2D 렌더링 엔진(Canvas / WebGL / WebGPU) | 브라우저 전용 |
ranuts/i18n | 번역 엔진: 평평한 사전, 실행 중 전환 | 브라우저 + Node |
ranuts/sw | 캐시 전략과 프리캐시 규약의 워커 쪽 절반 | 서비스 워커 |
ranuts/vnode | Snabbdom 풍의 가상 DOM | 브라우저 |
ranuts/stream | SSE 파싱, 모델 스트림 접기, 토큰 예산 | 브라우저 + Node |
ranuts/conversation | 이벤트 로그 → 그릴 수 있는 대화 노드 | 브라우저 + Node |
* ranuts/utils는 폭이 넓습니다. 대부분은 브라우저를 향하지만, 순수한 헬퍼는 어디서나 돕니다. 브라우저 코드에서 ranuts/node를 import하지 마세요. fs / http / child_process를 끌어옵니다.
무엇이 들어 있나
함수형: debounce · throttle · once / singleFlight · QuestQueue · withTimeout / deferred · compose
데이터: cloneDeep · isEqual · merge · filterObj · 숫자 서식과 파싱 · 색 변환과 혼합
텍스트: md5 · truncate · detectLanguage · resolveLocale · segmentByRanges · paginate · escapeHtml
브라우저: 스토리지 · IndexedDB · 워커 클라이언트 · postMessage 브리지 · 프리페치 · 기기 감지 · 성능 · ZIP · 오디오 녹음 · 음성을 텍스트로
AI와 채팅: stream · conversation · i18n
렌더링: 2D 엔진 · 가상 DOM · canvas 헬퍼 · tween
Node: HTTP 서버와 라우터 · 파일 작업 · MIME 타입
여기 있는 것은 일부입니다. API 레퍼런스에는 모든 export가 시그니처와 설명과 함께 실려 있고, 소스에서 생성되므로 어긋날 수 없습니다.
다음에 볼 곳
| 이런 걸 하고 싶다면 | 이것을 읽으세요 |
|---|---|
| 어떤 함수가 있는지, 시그니처는 무엇인지 찾아보기 | API 레퍼런스 |
| 비슷한 두 유틸리티 중에서 고르기 | 유틸리티 고르기 |
| 갈래별로 훑어보기 | 유틸리티 목록 |
| 스트리밍되는 모델 응답을 그리기 | stream → conversation |
| 그 위에 UI 만들기 | ranui |
두 패키지 모두 npm 타르볼 안에 CLAUDE.md를 함께 싣습니다. 코딩 에이전트를 위한 길잡이이며, 네트워크 없이 node_modules에서 바로 읽을 수 있습니다.