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, many features remain unimplemented. We welcome any help!



Minecraft versions that are supported



Feather supports world saves and clients with 1.16.5. 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.



Our mid-term goal for Feather is to be usable on minigame and hub server. The limited set of gameplay features available in Feather is not a problem for such servers that require a small subset of vanilla functionality. On the other hand, Feather's modularity and performance lends itself to these types of servers. To enable these use cases, our current focus is to build a rich plugin API.



Feather could be used long-term on larger, more survival-like servers. This would allow many players to simultaneously use the same world, requiring very few resources.



Ecosystem



The Feather ecosystem includes several repositories.



libcraft is a set Rust containers that provide Minecraft functionality. quill, our plugin API in development. Quill plugins are written in Rust and compiled to WebAssembly. Feather runs them on a WebAssembly VM sandboxed. feather, the server software built on top of libcraft and quill.



Performance



Feather has so few features that comparisons to vanilla performance are extremely misleading. But they are available if you want them.



Feather can handle 1,000,000 entities that are spawned from a plugin before it begins to max out the CPU. The vanilla server will croak well before that. - Feather can support 500 concurrent player connections. Each player must walk in a random order.



These results will change as Feather implements more features. Please take these results with a grain.



Memory usage in Feather depends on the number of loaded chunks and not player counts. The server uses approximately 40 MiB of RAM to run the 500 player test. This is until the players start spreading out. raunge 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: Do NOT use github releases, they are majorly outdated



To run Feather



Extract the downloaded archive. - Run it. - On Linux and macOS: ./feather-server in the server directory - On Windows: double-click feather-server.exe



The server will create the configuration file (config.toml), which can be modified by you.



Feather will create a world automatically. To load a vanilla world, copy it to the server directory with the name "world".



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 using another platform, compile it yourself to give it a try.



Compiling from source will require the most current stable version Rust. Older Rust versions might be able to compile Feather but are not guaranteed to work.



The target/release location will contain the executable for the server.



Architecture



We have a working explanation of Feather’s architecture available for contributors.



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 you help?



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. Thank you for your interest in contributing.



- Is there another way I can help?



Yes! We're always looking for people to test out the server and find bugs. If you find anything that doesn't seem right to you, please submit an issue on the issue tracker.


Created: 29/08/2022 18:12:31
Page views: 34
CREATE NEW PAGE