프로젝트 소개
Runique은 Django 스타일의 생산성을 Rust 애플리케이션에 가져오면서 타입 안전성과 성능을 유지하는 것을 목표로 하는 Rust 웹 프레임워크입니다. Axum, SeaORM, Tera를 기반으로 하며, 선언적 매크로와 통합된 규칙을 통해 보일러플레이트를 줄이는 데 중점을 둡니다. 메인 크레이트인 runique는 핵심 프레임워크이며, 저장소에는 프레임워크를 검증하는 데 사용되는 데모 애플리케이션과 영어 및 프랑스어 이중 언어 문서도 포함되어 있습니다.
프레임워크는 model! 매크로를 중심으로 하며, 이 매크로는 모델을 한 번 선언하면 해당 SeaORM 엔티티와 SQL 마이그레이션을 생성합니다. 모델에 #[form] 속성을 추가하면 서버 측에서 검증되는 일치하는 타입 안전 폼이 생성됩니다. admin! 매크로에 리소스를 등록하면 목록 보기, 검색, 필터, 권한을 갖춘 CRUD 관리 패널이 생성됩니다. 라우팅은 일반 Axum Router를 생성하는 urlpatterns! 매크로를 통해 처리되며, 템플릿은 자동 이스케이핑을 갖춘 Tera를 사용합니다.
Runique에는 상수 시간 CSRF 토큰 비교, 응답별 Content Security Policy nonce, 타이밍 안전 로그인 처리, Argon2 비밀번호 해싱, 데이터베이스 기반 세션, 해시된 일회용 비밀번호 재설정 토큰, ammonia를 사용한 출력 위생 등 여러 기본 보안 조치가 포함되어 있습니다. 또한 새 프로젝트 생성, 관리 코드 생성, 슈퍼유저 생성, 마이그레이션 작성, 마이그레이션 적용 또는 롤백 등 일반적인 작업을 위한 CLI도 제공합니다. 관리 패널은 베타 버전으로 설명되어 있으며, 권한은 현재 주로 리소스 수준이며, 생성된 관리 코드는 재생성 시 덮어쓰여집니다.
이 프로젝트는 SQLite, PostgreSQL, MySQL, MariaDB 등 여러 데이터베이스 백엔드를 지원하며, 기본적으로 모든 데이터베이스가 활성화되어 있습니다. 프레임워크 크레이트에 대한 커버리지 메트릭을 제공하는 대규모 테스트 스위트를 보고합니다. 문서는 설치, 아키텍처, 구성, 라우팅, 폼, 모델, 템플릿, ORM 사용, 미들웨어, 플래시 메시지, 예제, 관리, 세션, 환경 변수를 다룹니다. 이 프로젝트는 MIT 라이선스 하에 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.