원문 캡처 · github.com
원문 캡처 · github.com

Spindle은 OCaml 5와 Eio를 기반으로 웹 애플리케이션을 만들 수 있는 프레임워크다. 타입에서 JSON과 프런트엔드 스키마, OpenAPI 문서를 생성하고 HTTP, WebSocket, 세션 등 서버 기능을 제공한다.

프로젝트는 opam 저장소를 추가한 뒤 opam install spindle로 설치한다. bin/dune에는 spindle과 eio_main 라이브러리 및 ppx_wiretype 전처리기를 설정해야 한다. 전체 앱을 만드는 과정은 첫 앱 튜토리얼에서 확인할 수 있다.

Spindle은 자체 HTTP/1.1 엔진을 갖추고 있으며, 프로젝트 설명에 따르면 HTTP(RFC 9112·9110), WebSocket(RFC 6455), 폼(RFC 7578) 요구사항을 테스트로 확인한다. Structured Fields는 RFC 9651의 공개 테스트 모음을 사용한다. OCaml 타입으로부터 JSON을 파생하고 입력값을 검증하며, Zod 또는 Melange 스키마도 생성할 수 있다.

라우트 정의를 바탕으로 /docs에 대화형 API 문서를 제공한다. 이 문서는 Scalar로 제공되는 OpenAPI 3.2 문서로, 경로와 타입의 범위 조건, 응답 가능한 오류를 표시하고 API를 직접 시험하는 버튼을 포함한다. PostgreSQL, WebSocket, 서버 전송 이벤트(SSE), 세션, 로깅, 추적, 메트릭 기능도 포함한다.

Spindle 저장소 · 문서 · 라이선스