shelfeditor10
Su di me
GitHub - Feather-rs/feather: A Minecraft Server Implementation In Rust
A Minecraft server implementation written in Rust.
Status
The project is still at an infancy stage. Many features are still unimplemented. We welcome help from anyone willing to contribute!
Supported Minecraft versions
Feather supports world saves and clients with 1.16.5. We do not currently have plans to support multiple versions at once, but we may consider this in the future.
Goals
The Feather project aims to provide a Minecraft server that is fast, modular, and paired with an ergonomic plugin API.
Mid-term, our goal is to make Feather available on minigame and hub servers. The limited set of gameplay features available in Feather is not a problem for such servers that require a small subset of vanilla functionality. These servers can benefit from Feather's modularity, performance, and flexibility. To enable these use cases, our current focus is to build a rich plugin API.
In the long term, Feather could be used on larger, more survival-like servers, where its performance should allow many players to simultaneously play on the same world requiring very few resources.
Ecosystem
The Feather ecosystem has several repositories.
MINECRAFT
libcraft, a set of Rust crates providing Minecraft functionality. quill, our plugin API in development. Quill plugins can be written in Rust, and compiled to WebAssembly. Feather runs them on a WebAssembly VM sandboxed. feather is the server software that was built on top libcraft, quill.
Performance
Feather implements so many features that comparisons with vanilla performance can be misleading. But they are available if you want them.
Feather can handle 1,000,000 entities generated by a plugin before the CPU starts to overload. The vanilla server won't croak until then. - Feather can support 500 concurrent player connections. Each player must walk in a random order.
These results could change as Feather adds new features. Take them with a grain.
Memory usage in Feather varies according to how many chunks are loaded, and not the player count. In the 500 player test, the server uses ~40 MiB of RAM until the players start to spread out. It uses 400MiB of RAM for the 1,000,000 entities testing without any chunks.
Running
We offer precompiled binaries for Windows, Linux, and macOS at GitHub Actions. NB: Don't use github releases. They are often out of date.
To run Feather
Extract the downloaded archive. - Run the binary. - Linux, macOS:. MINECRAFT /feather–server in your server directory. Windows: Double-click feather–server.
The server will create the configuration file (config.toml), which can be modified by you.
Feather will create a world automatically. Copy the world save to the server directory, under the name "world", if you want to load a vanilla universe.
Warning: Feather world persistence is fairly new and will likely cause problems when attempting to open Feather worlds in vanilla. Do not let Feather touch worlds you care about unless they have been backed up.
Compiling
If you are on another platform, compile the server yourself to try it out:
Compiling from source will require the most current stable version Rust. Older Rust versions are sometimes able to compile Feather. However, they are not guaranteed.
The server executable will be located in target/release.
Architecture
We have a work in progress explanation of Feather’s architecture for contributors here.
Feather production is ready?
No. There are numerous bugs and missing features which have yet to be resolved, and the codebase has not been tested enough to consider the server production ready.
How can I make a difference?
Check out our issue tracker for information on what needs to change. Feel free to join our Discord, ask questions whenever and wherever you need. We are grateful for your interest to contribute!
- Are there any other ways I could help?
Yes! Yes. Please submit an issue to the issue tracker if you find something that isn't working.