- Notifications
You must be signed in to change notification settings - Fork146
A Minecraft server implementation in Rust
License
feather-rs/feather
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
A Minecraft server implementation written in Rust.
Note: This project is currently inactive. Consider contributing tovalence instead.
Feather supports 1.16.5 clients and world saves. We do not currently have plans to support multiple versions at once, butwe may consider this in the future.
The Feather project aims to provide a Minecraft server that isfast,modular, and paired with an ergonomic plugin API.
Our mid-term goal is to make Feather usable on hub and minigame servers. The limited set of gameplay features available in Featheris not a problem for such servers that require a small subset of vanilla functionality. On the other hand, Feather's modularityand performance lends itself to these types of servers. Therefore, our current focus ison building a rich plugin API to enable these use cases.
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.
The Feather ecosystem consists of several repositories:
libcraft, a set of Rust crates providing Minecraft functionality.quill, our work-in-progress plugin API. Quill plugins are written in Rust and compiled to WebAssembly. Feather runs them in a sandboxed WebAssembly VM.feather, the server software built on top oflibcraftandquill.
Comparisons to vanilla performancewill be extremely misleading, because Feather implements so few features. But if you really want them:
- Feather can handle 1,000,000 entities spawned by a plugin before it starts to max out the CPU. The vanilla server will croak long before then.
- Feather can handle 500 concurrent player connections with each player walking in a random direction.
These resultswill change after more features are implemented in Feather, so take them with a grain of salt.
Memory usage in Feather is proportional to the number of loaded chunks, not player counts. In the 500 player test, the server uses ~40 MiB of RAMuntil the players start to spread out. In the 1,000,000 entities test, it uses 400 MiB of RAM without any chunks loaded.
We offer precompiled binaries for Windows, Linux, and macOS atGitHub Actions.NB: DoNOT use github releases, they are majorly outdated
To run Feather:
- Extract the downloaded archive.
- Run the binary.
- On Linux and macOS:
./feather-serverin the server directory - On Windows: double-click
feather-server.exe
- On Linux and macOS:
The server will create a configuration file (config.toml) which you can modify.
Feather will generate a world by default. If you want to load a vanilla world,copy the world save to the server directory under the name "world" (by default).
Warning: Feather world persistence is fairly new and will likely cause problemswhen attempting to open Feather worlds in vanilla. Do not let Feather touch worldsyou care about unless they have been backed up.
If you are on another platform, compile the server yourself to try it out:
git clone https://github.com/feather-rs/feathercd feathercargo build --releaseCompiling from source requires the latest stable version of Rust. Older Rust versions may be ableto compile Feather, but they are not guaranteed to keep working.
The server executable will be located intarget/release.
For contributors, we have a work-in-progress explanation of Feather's architecturehere.
- Is Feather production ready?
Not yet. 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 contribute?
Check out ourissue tracker to find out what needs to be worked on. Feel freeto joinour Discord and ask questions whenever you need. Thanks for your interest in contributing!
- Are there other ways I can help?
Yes! We're always looking for people to test out the server and find bugs. If you find anything that doesn'tseem right to you, please submit an issue on the issue tracker.
About
A Minecraft server implementation in Rust
Topics
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.