Larust logo
Larust
Larust는 Rust를 위한 Laravel 스타일의 웹 프레임워크입니다. Larust는 라우팅(routing), 유효성 검사(validation), 템플릿, ORM, 그리고 xr CLI 명령어 등 Laravel 개발자에게 익숙한 애플리케이션 구조를 제공하는 동시에, 기반이 되는 애플리케이션은 Axum, sqlx, tower-sessions 위에 구축된 일반적이고 컴파일되며 타입 체크가 가능한 Rust로 유지합니다.
*Larust는 Laravel의 디자인에서 영감을 받은 독립적인 커뮤니티 프로젝트입니다.
Taylor Otwell, 또는 Laravel 프로젝트.*
Website · Documentation · First app guide
Larust의 모든 크레이트(crate)는 xr 자체를 포함하여 crates.io에 게시됩니다. cargo install larust-cli만 실행하면 클론할 필요 없이 작동하는 CLI를 얻을 수 있으며, xr new/xr convert는 체크아웃이 필요 없이 게시된 크레이트를 직접 의존하는 앱을 생성합니다.
상태 (Status)
v0.6.0이 현재 개발 라인입니다. 이 프레임워크에는 핵심 웹 스택, 인증(authentication), 마이그레이션 및 관계(migrations and relationships), 큐 및 스케줄링(queues and scheduling), 이름 지정 콘솔 명령어(named console commands), 선택적 통합(optional integrations), 그리고 Laravel 변환 도구(Laravel conversion tool)가 포함되어 있습니다. 개발 이력은 MILESTONES.md를, 원래 디자인 근거와 Laravel-to-Rust 비교는 rust-laravel.md를 참조하세요.
빠른 시작 (Quick start)
1. xr 설치
이것으로 충분합니다. 클론할 필요가 없습니다. Larust 자체에 기여하거나, 또는 xr new/xr convert를 게시된 크레이트 대신 로컬의 미출시 프레임워크 변경 사항을 기반으로 스캐폴딩(scaffold)하도록 하고 싶다면 저장소를 클론하고 --workspace <경로>와 함께 ./install.sh/.\\\install.ps1을 사용하세요. 자세한 내용은 설치를 참고하세요.
2. 앱 생성 및 실행
xr new myapp --auth
cd myapp
xr migrate
...
http://127.0.0.1:34187을 열어보세요. --auth는 User 모델, 회원가입(registration), 로그인/로그아웃(login/logout), 그리고 auth/guest 라우트 보호 기능을 추가합니다. 시작 지점을 더 작게 만들려면 이 옵션을 생략하세요.
3. CLI 탐색
앱 디렉토리에서, xr은 프레임워크 작업을 처리하고 routes/console.rs에 등록된 이름 지정 명령어(named commands)를 애플리케이션 자체로 전달합니다:
xr route:list
xr make:controller CommentController --resource
xr make:model Category --migration
이 저장소 자체의 번들링된 참조 앱은 실제 이름 지정 명령어를 포함하고 있습니다 (이 저장소를 클론한 것에서 가져온 것이지, 방금 스캐폴딩한 앱이 아닙니다):
cd examples/blog
xr command:list
xr report:posts
배포(deployment), 백그라운드 작업(background work), 데이터베이스 유틸리티(database utilities), 그리고 앱 정의 명령어들을 포함한 전체 명령어 참조는 The xr CLI를 참고하세요.
전역 xr 설치가 없는 경우
Larust 체크아웃에서, Cargo를 통해 프레임워크 명령을 실행합니다:
cargo run -p larust-cli -- new myapp --auth
생성된 앱 내부에서는, 해당 바이너리가 동일한 앱 전면 명령어(app-facing commands)를 수락합니다:
cargo run -- migrate
cargo run -- route:list
cargo run
Larust 학습하기
| ~을 하고 싶다면… | 여기에서 시작하세요 |
|---|
| 첫 번째 애플리케이션 구축 | Your First App |
| ... | |
examples/blog는 참조 앱입니다. 이 앱은 인증(auth), 작성자에게 속하는 Post 모델, CSRF 보호 폼(CSRF-protected forms), 세션 플래시 메시지(session flash messages), 라우트 모델 바인딩(route model binding), 그리고 사용자 정의 콘솔 명령어(custom console command)를 시연합니다. | |
저장소 레이아웃
crates/
├── larust-core, larust-http, larust-orm, larust-validation, larust-view
│ 기반: 애플리케이션 부트스트랩(application bootstrap), 라우팅(routing), 영속성(persistence), 유효성 검사(validation), 뷰(views)
...
생성된 앱은 larust-core, larust-http, larust-support, tokio, 그리고 **sqlx**에 직접 의존합니다. larust-support는 Larust의 애플리케이션 전면 API를 노출하며; 아키텍처 가이드에서는 왜 sqlx가 직접적인 의존성으로 남아 있는지 설명합니다.
검증 및 기여하기
cargo build --workspace
cargo test --workspace
cargo clippy --workspace -- -D warnings
...
저장소의 pre-push hook을 한 번 활성화하여 CI에서 처음 사용했던 빠른 컴파일 게이트를 실행합니다:
git config core.hooksPath .githooks
이 hook은 cargo check --workspace --all-targets --locked를 실행합니다. 기여 지침은 CONTRIBUTING.md에서, 보안 보고서는 SECURITY.md에서, 커뮤니티 기대 사항은 CODE_OF_CONDUCT.md에서 확인하세요.
감사 (Acknowledgement)
문서 작성을 돕기 위해 AI 모델을 사용했습니다. 왜냐하면 제가 문서 작성에 능숙하지 않기 때문입니다.
라이선스 (License)
Apache License, Version 2.0에 따라 라이선스가 부여됩니다.