MineNode

MineNode is a Minecraft: Java Edition server built on top of Node.JS

A performant and easily modifiable Minecraft server, built from-scratch using TypeScript and Rust.

Why Node.JS and Rust?

Node.JS is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.JS uses libuv for its event loop, providing a performant, scalable and asynchronous I/O model. Combined with the V8 JavaScript engine, Node.JS is a blazing fast JavaScript runtime and a powerful platform for building fast and extensible applications. We use Node.JS for the core parts of MineNode, and we use Rust for other, more processor-intensive parts to make MineNode as fast as possible.

The use of Node.JS also presents an opportunity for developers to easily extend and modify MineNode using plugins written in JavaScript. This is an ideal scenario for plugins, especially when compared to, for example, the Java plugin system, which heavily relies on Reflection and other less-than-ideal techniques.

JavaScript is also more accessible to developers since it is a dynamic, interpreted language and does not require compilation. This makes it easier to write and debug plugins. Plugin developers will also be able to use the extensive NPM package registry to use third-party libraries.

What's the status?

This project is a work-in-progress and is unfinished. We currently are in need of contributors to help with MineNode. If you are interested in helping, please join our Discord Server or submit a pull request.

If you just want to stay informed on the status of the project, please check out our GitHub or Discord (links below)!

Licensing

MineNode is licensed under the AGPL-3.0 license. This license is very well-suited to server software, as it allows you to freely modify and redistribute the software as you see fit, but also requires users of the software, including server operators, to acknowledge and display the source of the software.