TL;DR

  • Lix는 제품 안에 넣어 사용할 수 있으며 파일, SQL 데이터베이스, 버전 관리를 하나의 저장소로 묶어 전체 데이터를 함께 브랜치·비교·병합·롤백하게 함
  • 파일 내용, 앱 테이블, 리뷰, 댓글을 모두 버전 데이터로 저장하고 외부 제어 평면 없이 일반 파일과 SQL로 접근하게 함
  • ACID OLTP 데이터베이스에서 수백만 개 행을 SQL로 조회하고 셀·절·행 단위 변경 사항을 비교하게 함
  • 로컬 파일 시스템, 브라우저의 SQLite OPFS, S3 기반 서버를 저장소로 사용할 수 있으며 사람과 에이전트의 실시간 공동 작업을 지원함
  • 파일별·그룹별 권한 기능은 저장소 안에서 버전 관리되는 형태로 제공 예정임

제품 안에 넣는 저장소

  • Lix는 제품에 임베드할 수 있는 저장소로, 파일·SQL 데이터베이스·버전 관리를 하나로 결합함
  • 파일 내용, 앱 테이블, 리뷰, 댓글이 모두 버전 데이터이며 동기화할 외부 제어 평면이 없음
  • 에이전트는 일반 파일을 읽고 쓰고, 제품은 SQL로 조회하며, 모든 데이터를 함께 브랜치·차이 비교·병합·롤백함
  • 모든 형식의 파일을 저장할 수 있으며 텍스트 파일과 바이너리 파일을 모두 지원함
  • 플러그인을 사용하면 지원되는 형식의 파일을 버전 관리되는 행으로 조회할 수 있음
  • SQL 데이터베이스에는 파일 내용, 앱 데이터, 변경 이력이 ACID OLTP 데이터베이스에 저장됨
  • SQL로 수백만 개 행을 조회할 수 있음
  • 버전 관리에서는 바이트 덩어리가 아니라 변경된 절, 셀, 행을 표시함
  • 변경 사항을 검토하고 병합하며 롤백할 수 있음
  • 실시간 공동 작업에서는 사람과 에이전트가 하나의 저장소를 공유하고 변경 사항을 발생 시점에 확인함
  • 플러그형 저장소로 로컬 파일 시스템, 브라우저 OPFS에서 동작하는 SQLite, Lix 서버 뒤의 S3를 사용할 수 있음
  • 권한은 곧 제공 예정이며, 금융·법무·계약 담당자마다 다른 접근 권한이 필요한 상황을 대상으로 함
  • 권한은 저장소 안에서 파일별·그룹별로 관리되고 다른 변경 사항과 마찬가지로 버전 관리될 예정임

시작하기

  • JavaScript, Rust, Python, Go에서 사용할 수 있음
  • npm install @lix-js/sdk @lix-js/storage-filesystem 명령으로 Lix SDK와 파일 시스템 저장소 패키지를 설치함
  • FilesystemStorage./repository 경로로 열어 로컬 저장소를 실행할 수 있음
  • openLix로 저장소를 연 뒤 lix_file 테이블에 /notes/status.txt 파일을 삽입하고, 파일 내용으로 ready를 저장함
  • 파일 내용은 TextEncoder로 바이트 배열로 변환함
  • 서버를 사용할 때는 openLix 설정의 서버 주소에 https://example.com/repositories/acme를 지정함

데모 사용

  • lixray.com에서 Lix 데모를 사용해 볼 수 있음

주요 사용 사례

고객마다 저장소 제공

  • 제품이 고객마다 자체 저장소를 제공하며, 고객의 파일·데이터·대형 언어 모델이 작성하는 자동화를 함께 저장함
  • Lix는 모든 파일 형식과 실시간 공동 작업을 지원하고 제품 안에 임베드됨
  • 비기술 사용자는 브랜치와 풀 리퀘스트 대신 승인되돌리기를 사용함
  • 권한 기능은 제공 예정임
  • 고객별 서버 저장소 주소를 https://example.com/repositories/${customer.id} 형태로 구성해 openLix로 열 수 있음
  • lix_file 테이블에 /automations/booking.ts 경로와 자동화 코드를 삽입함

파일 동기화

  • 코딩 에이전트와 애플리케이션이 작업하는 파일을 여러 기기와 서버 사이에서 동기화함
  • FilesystemStorage./project 경로로 사용하면서 https://lixray.com/@acme/project 서버와 연결할 수 있음
  • LixRay를 사용하거나 자체 서버를 실행할 수 있음

버전 관리를 사용하는 앱

  • 앱은 SQL 행과 일반 파일을 읽고 쓰며, Lix는 각 변경 사항에 작성자를 기록함
  • 이력, 변경 주체 확인, 브랜칭, 롤백을 앱에서 별도 기능으로 구축하는 대신 쿼리로 처리함
  • 예를 들어 orders 테이블에서 식별자 1002인 주문의 상태를 shipped로 변경할 수 있음
  • lix_change 테이블을 조회해 생성 시각, 계정 식별자, 스키마 키, 행 기본 키, 스냅숏 내용을 최신 변경 순서로 확인함
  • 파일과 행은 하나의 ACID 트랜잭션 안에서 함께 갱신됨
  • 차이 비교에 관한 추가 내용은 Read more about diffs →에서 확인함

Lix의 작동 방식

파일과 데이터베이스

  • 플러그인이 파일을 SQL 행으로 매핑하며, 문단·셀·속성이 Lix가 버전 관리할 수 있는 행이 됨
  • FilesystemStorage를 사용하면 파일은 디스크에서 계속 이용할 수 있고, 파일에서 생성된 행은 SQL로 조회할 수 있음
  • Lix는 파일과 SQL 행 양쪽의 변경 사항을 추적함

인프라의 프로세스 안에서 실행

  • Lix는 플러그형 저장소와 함께 프로세스 안에서 실행되며 메모리, 로컬 파일 시스템, S3 기반 서버를 저장소로 사용할 수 있음
  • 기존 버전 관리 시스템인 Git은 로컬 POSIX 파일 시스템을 전제로 하므로 임베드와 확장이 어려움
  • 저장소에 관한 내용은 Storage 문서에서 확인함

비교

  • Git은 파일을 추적하지만 SQL이 없음
  • PostgreSQLSQLite는 SQL을 제공하지만 파일과 변경 이력이 없음
  • Lix는 파일·SQL·변경 이력 세 가지를 모두 제공함
  • 기능 비교는 다음과 같음
  • 일반 파일: Lix는 지원, Git은 지원, PostgreSQL / SQLite는 미지원
  • SQL과 트랜잭션: Lix는 지원, Git은 미지원, PostgreSQL / SQLite는 지원
  • 브랜치와 병합: Lix는 지원, Git은 지원, PostgreSQL / SQLite는 미지원
  • 셀·절·행 단위 차이 비교: Lix는 플러그인을 통해 지원, Git은 텍스트 줄만 지원, PostgreSQL / SQLite는 미지원
  • 플러그형 저장소: Lix는 지원, Git은 미지원, PostgreSQL / SQLite는 미지원

추가 정보

  • 시작 안내서: Lix로 첫 앱 구축
  • 문서: 전체 API 참고 자료와 안내서
  • Discord: 도움을 받고 커뮤니티에 참여
  • GitHub: 문제를 신고하고 기여

라이선스

  • MIT 라이선스임