decl-lang을 공개했습니다

#decl-lang#language#open-source

포트폴리오에 decl-lang을 추가했습니다. 공식 사이트는 decl-lang.org, 소스 코드는 GitHub에서 볼 수 있습니다.

Decl은 어떤 언어인가요?

Decl은 구조화된 데이터를 기술하고, 생성하고, 검증하는 선언형 언어입니다. 데이터의 타입과 제약 조건, 기본값, 다른 값에서 계산되는 속성을 하나의 스키마에 담습니다. 이 스키마로 값을 만들고, 외부에서 들어온 데이터가 같은 규칙을 지키는지도 확인합니다.

예를 들어 서비스 설정을 정의한다면 포트 번호의 허용 범위와 기본값을 함께 적을 수 있습니다. 설정을 생성할 때는 빠진 기본값을 채우고, 배포된 설정을 검증할 때는 범위를 벗어난 값을 진단합니다. 공식 입문 가이드에서 이 흐름을 예제로 살펴볼 수 있습니다.

JSON을 포함하는 문법이어서 기존 JSON 값도 그대로 표현할 수 있습니다. 평가에는 부수 효과와 재귀가 없으며, 같은 입력은 같은 값과 진단 결과를 내도록 설계했습니다. 제약 조건을 어겼을 때의 진단도 언어의 일부로 다룹니다. 오류 코드와 심각도, 메시지를 규칙과 함께 정의할 수 있습니다.

하드웨어나 네트워크 같은 특정 분야의 기능을 언어 키워드로 고정하지 않고, 타입과 참조, 함수, 제약 조건으로 표현하는 범용 언어입니다. 언어의 전체 구조는 명세에 정리했습니다.

공식 사이트와 플레이그라운드

decl-lang.org에는 입문 가이드, 언어 명세, CLI와 편집기 도구 문서, 예제를 공개했습니다. 예제 모음에서는 하드웨어 인터커넥트, API 설정 스키마, 테스트용 데이터 조합을 다룹니다.

플레이그라운드에서는 설치 없이 브라우저에서 Decl 코드를 실행할 수 있습니다. TypeScript 구현의 코어가 브라우저 안에서 동작하므로, 문법을 바꿔 보면서 평가 결과와 진단을 확인할 수 있습니다.

패키지와 실행 파일 배포

2026년 9월 6일 배포한 0.4.0은 npm, PyPI, crates.io, Homebrew에서 설치할 수 있습니다. 패키지 이름은 decl-lang, 설치 후 실행하는 명령은 decl입니다. 배포 내역은 배포 문서에 정리되어 있습니다.

  • npm: TypeScript 참조 구현입니다. CLI와 언어 서버, JavaScript에서 사용할 라이브러리를 제공하며 Node.js 22 이상이 필요합니다.
  • PyPI: 네이티브 Python 구현입니다. Node.js 없이 실행하며, Python 코드에서는 decl 모듈로 평가·검사·검증·포맷 API를 사용할 수 있습니다.
  • crates.io: 네이티브 Rust 구현입니다. decl과 decl-lsp 실행 파일을 제공하며 Node.js나 WebAssembly 런타임이 필요하지 않습니다.
  • Homebrew: luuvish/tap을 통해 npm과 같은 TypeScript 구현을 설치합니다.

사용하는 환경에 맞춰 아래 명령 중 하나를 선택하면 됩니다.

# npm
npm install -g decl-lang

# Python
pip install decl-lang

# Rust
cargo install decl-lang

# Homebrew
brew install luuvish/tap/decl-lang

세 구현은 같은 언어 규칙을 따릅니다. 공통 테스트와 구현 간 비교를 통해 평가 결과, 진단, 포맷 등의 일치 여부를 확인합니다.

GitHub의 v0.4.0 릴리스에는 macOS·Linux·Windows의 arm64와 x86_64용 decl, decl-lsp 실행 파일도 올렸습니다. Python wheel과 VS Code 확장의 .vsix 파일도 함께 제공합니다.

CLI와 편집기 도구

CLI에서는 decl check로 정적 검사를 하고, decl evaluate로 값을 생성하고, decl validate로 데이터를 검증합니다. decl fmt는 소스 포맷을 정리합니다. 생성 결과는 기본적으로 JSON이며, 렌더러를 이용하면 YAML이나 템플릿 기반 텍스트로도 출력할 수 있습니다.

decl repl은 표현식을 실행하며 결과를 살펴보는 대화형 환경입니다. decl-lsp는 편집기에 진단, 자동 완성, 정의 이동, 이름 변경 등의 기능을 제공하는 언어 서버입니다.

VS Code 확장 Decl(luuvish.vscode-decl) 0.4.0은 Visual Studio Marketplace와 Open VSX에 배포했습니다. Zed 확장도 구현했으며, 이 글 작성 시점의 배포 문서 기준으로는 레지스트리 등록 PR을 제출한 상태입니다.

먼저 플레이그라운드에서 예제를 실행해 보고, 로컬 환경에서는 익숙한 패키지 관리자로 설치해 사용할 수 있습니다. 소스 코드와 개발 문서는 MIT 라이선스로 공개한 decl-lang 저장소에서 확인할 수 있습니다.

← 목록으로