Rune IDE 오픈소스 릴리스

Rune은 이제 오픈소스입니다

Unstable Build는 Go로 처음부터 설계된 네이티브 그래픽 IDE인 Rune을 GPLv3 라이선스 하에 오픈소스로 공개했습니다. 이 프로젝트는 관리형 언어의 빠른 반복 속도와 시스템 언어의 높은 성능 사이의 격차를 메우는 것을 목표로 하며, 참여 개발자들에게 회사 수익을 공유하는 혁신적인 기여자 프로그램을 도입하고 있습니다.

네이티브, 문자 그리드 기반 IDE 아키텍처

Rune은 터미널 에뮬레이터나 Electron 기반 애플리케이션 대신, 문자 그리드를 중심으로 설계된 네이티브 그래픽 애플리케이션입니다. 이 아키텍처 선택은 브라우저 런타임과 관련된 성능 오버헤드를 피하면서도 터미널과 유사한 단순한 인터페이스를 유지하는 GPU 가속 UI를 가능하게 합니다.

Go에서의 성능 엔지니어링

처음에는 Rust, Zig, C로 작성된 터미널보다 느렸지만, Rune의 터미널은 Alacritty, Ghostty, Kitty와 같은 업계 선도 제품과 경쟁할 수 있도록 최적화되었습니다. 개발 팀은 cgo를 통해 수동 메모리 관리를 내려가지 않고 다음과 같은 방법을 활용했습니다:

  • 더 나은 알고리즘과 goroutine 간 작업 분배의 효율성 향상.
  • 균형 잡힌 goroutine 깨우기로 Go 런타임 오버헤드 최소화.
  • 이벤트 기반 렌더링, 프레임당 초( FPS ) 모델에서 벗어나 지연 시간 감소.

Apple M4 Max와 같은 고성능 장비와 2016 맥북과 같은 저성능 장비에서 vtebench를 사용한 벤치마크 결과는, Go가 이러한 특정 워크로드에서 시스템 언어와 성능 면에서 동등한 수준에 도달할 수 있는 충분한 제어력을 제공함을 보여줍니다.

핵심 설계 원칙

  • 터미널 중심 UI: 터미널은 1등 시민이며, 전체 UI는 터미널 멀티플렉서와 유사합니다.
  • 통합 명령 표면: 퍼지 검색 가능한 명령 프롬프트는 편집기 작업, 창 관리, 에이전트 워크플로우를 처리합니다.
  • 지속 가능한 REPL: 패키지 설치, 모델 구성, 디버거 관리를 위한 전용 콘솔이 사용됩니다.
  • gRPC 확장 API: 편집기 핵심은 작게 유지되며, 리소스는 gRPC를 통해 노출되어 확장 기능을 어떤 언어로든 작성할 수 있습니다.
  • P2P 네트워킹: 각 인스턴스는 보안적인 P2P 네트워크의 노드 역할을 하며, 사용자가 rune://라는 사용자 정의 스키마를 통해 다른 기계의 워크스페이스를 열 수 있습니다.

"역-러그 풀" 기여자 모델

기업들이 프로젝트를 오픈소스로 공개한 후 가치가 생기면 다시 라이선스를 변경하는 추세를 막기 위해, Unstable Build는 "역-러그 풀" 모델을 도입하고 있습니다.

수익 공유 및 거버넌스

  • GPLv3 라이선스: 기여자들은 자신의 작업에 대한 저작권을 유지하며, Unstable Build는 커뮤니티의 작업을 일방적으로 상용화할 수 없습니다.
  • 재정적 인센티브: 참여 기여자는 수락된 작업에 대해 "기여 크레딧"을 얻습니다. 자격 있는 서비스 수입의 일정 비율이 풀링되어, 활성 크레딧 비율에 따라 기여자들에게 배분됩니다.
  • 검증 가능한 원장: 수입, 공제, 배분과 관련된 모든 계산은 공개적으로 검증 가능한 원장에 유지되어 투명성을 보장합니다.
  • 선택적 참여: 개발자는 표준 GPLv3 및 DCO 프로세스를 통해 참여할 수 있으며, 지급 프로그램에 참여하지 않아도 됩니다.

언어 지원 및 생태계

Rune은 현재 Go와 Python에 대해 1등급 지원을 제공하며, Rust와 Zig는 main 브랜치에서 베타 상태입니다. "1등급 지원"은 언어 서버 프로토콜(LSP) 통합을 넘어서 프로젝트 탐색, 도구 제공, 생태계별 워크플로우(예: 콘솔에 직접 rustup 통합)를 포함합니다.

커뮤니티의 시각과 비판

발표 이후 개발 커뮤니티는 IDE의 접근 방식에 대해 여러 논의 포인트를 제기했습니다:

  • 온보딩 장벽: 일부 사용자는 Vim 모드 온보딩 과정이 지나치게 제한적이어서, 특정 교육을 완료하지 않으면 새 사용자가 편집기를 탐색하기 어려웠다고 지적했습니다.
  • 빌드 시간: 일부 기여자는 Go가 Rust보다 빠른 빌드 시간을 제공한다는 주장에 의문을 제기했으며, 한 사용자는 Zed의 빌드 시간이 특정 시나리오에서는 더 빠를 수 있음을 보여주는 벤치마크를 제시했습니다.
  • 문자 그리드의 유용성: 일부 비판자는 네이티브 GUI가 TUI를 모방하는 것의 가치를 의심하며, 터미널의 시각적 제약과 이동성 손실을 동시에 겪는다는 점을 지적했습니다.
  • 네트워크 신뢰: 사용자들은 P2P 조정 서버와 암호화 방식에 대한 신뢰에 대해 우려를 표했으며, Tailscale과 같은 도구와의 선택적 통합을 제안했습니다.

"기여자들을 위한 오픈 원장과 수익 공유는 IDE 자체보다 더 흥미로운 혁신일 수 있습니다."

"텍스트 프롬프트 명령의 탐색 가능성은 마음에 듭니다. 터미널이 더 1등 시민처럼 다뤄진다는 점도 좋아요."

"Rune은 터미널 안에 실행되는 애플리케이션이 아니라, 문자 그리드를 중심으로 설계된 네이티브 그래픽 애플리케이션입니다. 그런데 TUI의 시각적 제약은 갖되, 이동성의 이점은 없을까요? 왜 그런 걸까요?"

Sources

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트
  • Dispatch