Quartz
Quartz는 Vitor Pamplona가 개발한 Kotlin Multiplatform Nostr 라이브러리다. Amethyst가 하나의 코드베이스에서 Android, 데스크톱, 그리고 궁극적으로 iOS까지 지원하기 위한 공유 프로토콜 및 데이터 계층이다.
작동 방식
Quartz는 공유 라이브러리로서 핵심 Nostr 기능을 제공한다:
- 이벤트 처리: Nostr 이벤트의 파싱, 검증, 생성
- 암호화: Secp256k1 서명, NIP-44 암호화, 키 관리
- 릴레이 통신: 연결 관리, 메시지 순서, 구독 처리
- NIP 지원: NIP-06, NIP-19, NIP-44 등 주요 NIP 구현
왜 중요한가
Quartz는 프로토콜 집약적 로직을 단일 앱에서 재사용 가능한 라이브러리로 분리한다. 릴레이 처리, 이벤트 파싱, 암호화, 저장 규칙을 플랫폼별로 재구현하지 않고 클라이언트 간에 공유할 수 있게 되므로 의미가 크다.
구체적인 결과는 이미 Amethyst의 데스크톱 작업에서 나타났다. 그랜트 지원 리팩터링이 공유 코드를 commonMain, jvmAndroid, jvmMain 같은 Kotlin Multiplatform 모듈로 옮기면서, 데스크톱 지원이 전체 재작성이 아닌 라이브러리 및 모듈 문제가 되었다.
아키텍처
라이브러리는 모듈형 source set 구조를 사용한다:
commonMain: 모든 플랫폼 공유 코드jvmAndroid: JVM과 Android 간 공유 코드androidMain: Android 전용 구현jvmMain: 데스크톱 JVM 구현iosMain: iOS 전용 구현
현재 상태
2025년 12월, OpenSats는 14차 Nostr 그랜트에서 Quartz에 대한 자금 지원을 발표했다. 레포지토리는 독립 라이브러리로 존재하지만, 지금까지 눈에 보이는 진전은 대부분 앱 모듈을 멀티플랫폼 코드로 전환하고 타겟 간 기능 동등성을 추적하는 Amethyst PR을 통해 이루어졌다.
주요 출처:
언급된 뉴스레터:
같이 보기: