User description
A Minecraft server implementation written in Rust. Status The project is still at an infancy stage. Many features are still unimplemented. We welcome all contributions! Supported Minecraft versions Feather supports 1.16.5 clients and world saves. Although we don't currently have plans to support multiple versions simultaneously at the moment, we may do so in the near future. Goals The Feather project aims to provide a Minecraft server that is fast, modular, and paired with an ergonomic plugin API.Minecraft Servers Mid-term, we aim to make Feather accessible on hub and minigame server. Servers that only require a subset of vanilla functionality will not be affected by the limited gameplay features in Feather. Feather's modularity is and performance makes it an ideal platform for these types servers. Our current focus is on developing a rich plugin API that will enable these use-cases. Feather could eventually be used on larger servers with survival-like functions. raunge This will allow for many players to play simultaneously in the same world without consuming too much resources. Ecosystem The Feather ecosystem is made up of several repositories. libcraft is a collection of Rust crates that provide Minecraft functionality. Quill is our in-progress plugin API. Quill plugins were written in Rust. They are compiled to WebAssembly. Feather runs them in a WebAssembly VM sandboxed. feather, the server software built on top of libcraft and quill. Performance Feather is so sparsely implemented that it will make comparisons with vanilla performance very misleading. If you really need them: Feather can handle 1,000,000 entities generated by a plugin before the CPU starts to overload. The vanilla server will croak long before then. - Feather can handle 500 concurrent connections, with each player moving in a random direction. These results could change as Feather adds new features. Take them with a grain. Memory usage in Feather depends on the number of loaded chunks and not player counts. The server uses 40MiB of RAM for the 500 player test. After that, the server starts to spread out. In the 1,000,000 entities test, it uses 400 MiB of RAM without any chunks loaded. Running We offer precompiled binaries to Windows, Linux, and macOS through 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 and macOS:./feather_server in the server directory. - Windows: Double-click feather-server.exe The server will create configuration files (config.toml), that you can modify. Feather will automatically generate a new world. If you wish to load a vanilla planet, copy the world file to the server directory and name it "world" (by default). Warning: Featherworld persistence is relatively new and can cause problems when trying to open Feather realms 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 version may be able compile Feather, but it is not guaranteed to continue working. The target/release location will contain the executable for the server. Architecture We have a work in progress explanation of Feather’s architecture for contributors here. - Is Feather production ready? Not yet. There are many bugs and missing features that still need to be fixed. The codebase is not yet tested enough to allow for server production. How can I help? To see what needs to be done, visit our issue tracker. Feel free to join our Discord, ask questions whenever and wherever you need. We are grateful for your interest to contribute! - Are there other ways I can help? Yes! Yes! Please submit an issue to the issue tracker if you find something that isn't working.