AI 요약
Sula는 Scryer Prolog로 구현된 Gemini 프로토콜 서버로, rustls 기반 TLS, 호스트명 검증, MIME 타입 협상, 바이너리 파일의 네이티브 스트리밍 전송을 지원한다. 패치된 Scryer Prolog를 필요로 하며, SIGINT 시 정상 종료, 연결별 오류 처리, PKCS#12 인증서 지원 등의 특징을 갖는다. 폴리글롯 스크립트로 설계되어 bash가 scryer-prolog를 감지해 자동 실행한다.
핵심 포인트
- TLS는 rustls 포팅, PKCS#12 아이덴티티 파일 사용, 시작 시 openssl로 인증서 CN과 호스트명 일치 검증
- 바이너리 응답은 네이티브
copy_stream/2로 파일→TLS 소켓 직접 스트리밍 (Prolog 힙 미경유) - /etc/mime.types를 DCG 파서로 파싱해 확장자별 콘텐츠 협상, .gmi는 text/gemini로 매핑
- 패치된 socket_server_accept/4의 비차단 폴 루프로 SIGINT를 catchable 예외로 처리
향후 전망
- Scryer Prolog 기반 서버 구현 사례로서 Prolog 생태계의 실용적 네트워크 서버 개발 가능성 입증
- Gemini 프로토콜 서버 구현체 중 이색적인 기술 스택으로 관심 집중
출처:Hacker News
