All Projects → feather-rs → Feather

feather-rs / Feather

Licence: apache-2.0
A Minecraft server implementation in Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Feather

Godex
Godex is a Godot Engine ECS library.
Stars: ✭ 307 (-65.74%)
Mutual labels:  ecs, gamedev
Nodemc
Meta repository for information on the project as a whole
Stars: ✭ 16 (-98.21%)
Mutual labels:  minecraft, minecraft-server
Paper
High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies
Stars: ✭ 5,293 (+490.74%)
Mutual labels:  minecraft, minecraft-server
Mcsmanager
轻量级,开箱即用,多实例和支持 Docker 的 Minecraft 服务端管理面板
Stars: ✭ 829 (-7.48%)
Mutual labels:  minecraft, minecraft-server
Entitas Csharp
Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Stars: ✭ 5,393 (+501.9%)
Mutual labels:  ecs, gamedev
Flying Squid
Create Minecraft servers with a powerful, stable, and high level JavaScript API.
Stars: ✭ 311 (-65.29%)
Mutual labels:  minecraft, minecraft-server
Minestom
1.16.5 Lightweight and multi-threaded Minecraft server
Stars: ✭ 400 (-55.36%)
Mutual labels:  minecraft, minecraft-server
Shipyard
Entity Component System focused on usability and speed.
Stars: ✭ 247 (-72.43%)
Mutual labels:  ecs, gamedev
Anything about game
A wonderful list of Game Development resources.
Stars: ✭ 541 (-39.62%)
Mutual labels:  ecs, gamedev
Tuinity
Stars: ✭ 531 (-40.74%)
Mutual labels:  minecraft, minecraft-server
Purpur
Purpur is a fork of Paper, Tuinity, and Airplane with the goal of providing new and interesting configuration options, which allow for creating a unique gameplay experience not seen anywhere else
Stars: ✭ 286 (-68.08%)
Mutual labels:  minecraft, minecraft-server
Minecase
Minecraft server based on Orleans
Stars: ✭ 581 (-35.16%)
Mutual labels:  minecraft, minecraft-server
Defaultecs
Entity Component System framework aiming for syntax and usage simplicity with maximum performance for game development.
Stars: ✭ 286 (-68.08%)
Mutual labels:  ecs, gamedev
Nukkit
Cloudburst Nukkit - Nuclear-Powered Minecraft: Bedrock Edition Server Software
Stars: ✭ 776 (-13.39%)
Mutual labels:  minecraft, minecraft-server
Arclight
A Bukkit(1.15/1.16) server implementation on Forge using Mixin. ⚡
Stars: ✭ 262 (-70.76%)
Mutual labels:  minecraft, minecraft-server
Gdlauncher
GDLauncher is a simple, yet powerful Minecraft custom launcher with a strong focus on the user experience
Stars: ✭ 386 (-56.92%)
Mutual labels:  minecraft, minecraft-server
minecraft-lambda-function
AWS Lambda function for managing Minecraft server
Stars: ✭ 37 (-95.87%)
Mutual labels:  minecraft, minecraft-server
PyMine
Minecraft Server in Python
Stars: ✭ 12 (-98.66%)
Mutual labels:  minecraft, minecraft-server
Mohist
Minecraft Forge Hybrid server implementing the Paper/Spigot/Bukkit API, formerly known as Thermos/Cauldron/MCPC+
Stars: ✭ 489 (-45.42%)
Mutual labels:  minecraft, minecraft-server
Entt
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
Stars: ✭ 6,017 (+571.54%)
Mutual labels:  ecs, gamedev

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 Releases.

NB: these binaries are currently outdated. We intend to make another release shortly.

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].