Feather

A Minecraft server implementation in Rust
Alternatives To Feather
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Docker Minecraft Server6,782
19 hours ago81apache-2.0Shell
Docker image that provides a Minecraft Server that will automatically download selected version at startup
Dockercraft6,300
2 years agoJuly 12, 202218apache-2.0Lua
Docker + Minecraft = Dockercraft
Cuberite4,600
8 hours ago561otherC++
A lightweight, fast and extensible game server for Minecraft
Feather2,307
a month ago2September 13, 2020107apache-2.0Rust
A Minecraft server implementation in Rust
Eggs1,920
4 days ago120mitLua
Service eggs for the pterodactyl panel
Minestom1,887
16 hours ago167apache-2.0Java
1.19.3 Lightweight Minecraft server
Valence1,652
5 hours ago39mitRust
A Rust framework for building Minecraft servers.
Scriptcraft1,473
3 years ago72mitJavaScript
Write Minecraft Plugins in JavaScript.
Bungeecord1,398168 days ago4January 14, 2021355otherJava
BungeeCord, the 6th in a generation of server portal suites. Efficiently proxies and maintains connections and transport between multiple Minecraft servers.
Minecraft Optimization1,310
a month ago1
Minecraft server optimization guide
Alternatives To Feather
Select To Compare


Alternative Project Comparisons
Readme

Feather

build Discord

A Minecraft server implementation written in Rust.

Status

The project is in an early stage. Many, many features are unimplemented. We welcome help from anyone willing to contribute!

Supported Minecraft versions

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

Our mid-term goal is to make Feather usable on hub and minigame 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. On the other hand, Feather's modularity and performance lends itself to these types of servers. Therefore, our current focus is on 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.

Ecosystem

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 of libcraft and quill.

Performance

Comparisons to vanilla performance will 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 results will 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 RAM until the players start 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 for Windows, Linux, and macOS at GitHub Actions. NB: Do NOT use github releases, they are majorly outdated

To run Feather:

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

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 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:

git clone https://github.com/feather-rs/feather
cd feather
cargo build --release

Compiling from source requires the latest stable version of Rust. Older Rust versions may be able to compile Feather, but they are not guaranteed to keep working.

The server executable will be located in target/release.

Architecture

For contributors, we have a work-in-progress explanation of Feather's architecture here.

FAQ

  • 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 our issue tracker to find out what needs to be worked on. Feel free to join our 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't seem right to you, please submit an issue on the issue tracker.

Popular Server Projects
Popular Minecraft Projects
Popular Networking Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Rust
Server
Minecraft
Archive
Game Development
Aws Ecs
Minecraft Server