You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+43-30Lines changed: 43 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,36 +4,50 @@
4
4
5
5
A Minecraft server implementation written in Rust.
6
6
7
-
### Features
8
-
9
-
Note that Feather is still early in development. Don't expect anything not listed here to work.
10
-
11
-
-[x] Highly scalable architecture
12
-
-[x] Anvil world loading and saving
13
-
-[x] Physics
14
-
-[x] Basic world generation
15
-
-[x] Chunk streaming
16
-
-[x] Day/night cycle
17
-
-[x] Weather
18
-
-[x] Block lighting
19
-
-[x] Arrow shooting
20
-
-[x] Falling blocks
21
-
-[x] Block placement and breaking
22
-
-[x] Item dropping and collection
23
-
-[x] Chat
24
-
-[x] Inventory handling
25
-
-[x] Movement broadcasting
26
-
27
-
On the current `develop` branch, some more features are pending release:
28
-
-[x] Commands (/tell, /tp, /gamemode)
29
-
-[x] Survival mode
30
-
-[x] Survival mode block breaking and drops
31
-
-[x] Health + fall damage
32
-
-[x] (soon) block entities, including chests
7
+
### Status
8
+
9
+
The project is in an early stage. Many, many features are unimplemented. We welcome help from anyone willing to contribute!
10
+
11
+
### Supported Minecraft versions
12
+
13
+
Feather supports 1.16.5 clients and world saves. We do not currently have plans to support multiple versions at once, but
14
+
we may consider this in the future.
15
+
16
+
### Goals
17
+
18
+
The Feather project aims to provide a Minecraft server that is _fast_, _modular_, and paired with an ergonomic plugin API.
19
+
20
+
Our mid-term goal is to make Feather usable on hub and minigame servers. The limited set of gameplay features available in Feather
21
+
is not a problem for such servers that require a small subset of vanilla functionality. On the other hand, Feather's modularity
22
+
and performance lends itself to these types of servers. Therefore, our current focus is
23
+
on building a rich plugin API to enable these use cases.
24
+
25
+
In the long term, Feather could be used on larger, more survival-like servers, where its performance should allow
26
+
27
+
### Ecosystem
28
+
29
+
The Feather ecosystem consists of several repositories:
30
+
*[`libcraft`](https://github.com/feather-rs/libcraft), a set of Rust crates providing Minecraft functionality.
31
+
*[`quill`](https://github.com/feather-rs/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.
32
+
*[`feather`], the server software built on top of `libcraft` and `quill`.
33
+
34
+
### Performance
35
+
36
+
Comparisons to vanilla performance _will_ be extremely misleading, because Feather implements so few features. But if you really want them:
37
+
38
+
* 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.
39
+
* Feather can handle 500 concurrent player connections with each player walking in a random direction.
40
+
41
+
These results _will_ change after more features are implemented in Feather, so take them with a grain of salt.
42
+
43
+
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
44
+
until the players start to spread out. In the 1,000,000 entities test, it uses 400 MiB of RAM without any chunks loaded.
33
45
34
46
### Running
35
47
We offer precompiled binaries for Windows, Linux, and macOS at [GitHub Releases](https://github.com/feather-rs/feather/releases).
36
48
49
+
NB: these binaries are currently outdated. We intend to make another release shortly.
50
+
37
51
To run Feather:
38
52
* Extract the downloaded archive.
39
53
* Run the binary.
@@ -49,8 +63,6 @@ Warning: Feather world persistence is fairly new and will likely cause problems
49
63
when attempting to open Feather worlds in vanilla. Do not let Feather touch worlds
50
64
you care about unless they have been backed up.
51
65
52
-
Feather currently only supports 1.13.2 clients and world saves. In the future, additional versions will be supported.
53
-
54
66
### Compiling
55
67
If you are on another platform, compile the server yourself to try it out:
56
68
```bash
@@ -59,7 +71,8 @@ cd feather
59
71
cargo build --release
60
72
```
61
73
62
-
Compiling from source requires Java JDK 8 and `rustfmt`.
74
+
Compiling from source requires the latest stable version of Rust. Older Rust versions may be able
75
+
to compile Feather, but they are not guaranteed to keep working.
63
76
64
77
The server executable will be located in `target/release`.
65
78
@@ -72,7 +85,7 @@ and the codebase has not been tested enough to consider the server production re
72
85
73
86
* How can I contribute?
74
87
75
-
Check out our [issue tracker](https://github.com/feather-rs/feather/issues) to find an issue which appeals to you. Feel free
88
+
Check out our [issue tracker](https://github.com/feather-rs/feather/issues) to find out what needs to be worked on. Feel free
76
89
to join [our Discord](https://discordapp.com/invite/4eYmK69) and ask questions whenever you need. Thanks for your interest in contributing!
0 commit comments