프로젝트 소개
FerrumC는 Rust로 처음부터 작성된 Minecraft 서버 구현체로, Minecraft 버전 1.21.8을 대상으로 합니다. 바닐라 서버의 고성능, 메모리 효율적인 대안을 목표로 하며, Rust의 멀티스레딩 기능과 Bevy ECS 아키텍처를 활용하여 잠금 없는 동시성을 구현합니다.
**주요 기능:**
- **성능:** 완전히 멀티스레드로, 단일 메인 스레드 대신 사용 가능한 모든 CPU 코어를 활용합니다.
- **메모리 효율성:** 최소한의 메모리를 사용하면서도 완전한 기능을 갖춘 서버 경험을 제공하도록 설계되었습니다.
- **세계 가져오기:** 기존 바닐라 Minecraft 세계를 가져올 수 있습니다.
- **사용자 정의 시스템:** I/O 지연을 최소화하기 위해 자체 제작된 네트워크, NBT, Anvil 인코딩 시스템을 포함합니다.
- **빠른 K/V 데이터베이스:** 청크 저장을 위해 고속 키-값 데이터베이스를 사용합니다.
- **구성:** `config.toml` 파일을 통한 간단한 구성.
- **호환성:** 바닐라 Minecraft 클라이언트(버전 1.21.8)와 작동합니다.
**현재 상태:**
프로젝트는 초기 알파 단계이며 아직 프로덕션 준비가 되지 않았습니다. `rework/v2-skeleton` 브랜치에서 새로운 재작성이 진행 중이며, 곧 `master`에 병합될 예정입니다. 재작성에는 더 깔끔한 코어, 평평한 크리에이티브 세계, 영역 편집 명령어(`/fill`, `/replace`, `/undo`), 낮/밤 주기, 세계 저장, Rust 기반 플러그인이 포함됩니다. 크리에이티브 및 미니게임 서버를 위한 것이며, 서바이벌 또는 바닐라 정확한 게임플레이를 위한 것은 아닙니다.
**설치:**
- **Docker:** `ghcr.io/ferrumc-rs/ferrumc:<version>`에서 가져와 포트 25565로 실행합니다.
- **네이티브 바이너리:** Releases 페이지에서 플랫폼에 맞는 파일을 다운로드합니다.
- **소스에서:** 저장소를 클론하고 `cargo build --release`를 실행합니다.
- **GitHub Actions:** Actions 탭에서 사전 빌드된 아티팩트를 다운로드합니다.
**사용법:**
- 명령어: `setup`(구성 생성), `import`(세계 데이터 가져오기), `run`(서버 시작).
- 옵션: `--log` 로깅 수준(trace, debug, info, warn, error).
**개발:**
기여는 환영합니다. 프로젝트는 `tracy` 기능을 통해 Tracy 프로파일링을 지원합니다. 도움과 토론을 위해 Discord에 참여하세요.
**FAQ 주요 사항:**
- Valence/Minestom(프레임워크)과 달리 완전한 서버 대체품입니다.
- Paper/Spigot과 달리 모든 것을 처음부터 작성합니다.
- Pumpkin과 달리 바닐라 패리티보다 성능을 우선시합니다.
- 플러그인은 FFI를 통해 Rust로 작성됩니다. Java 플러그인/모드는 지원되지 않습니다.
- 지형 생성이 계획되어 있지만 정확히 바닐라와 같지 않을 수 있습니다.
**라이선스:** MIT 라이선스.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.