picocraft is (hopefully will become) a no_std lightweight minecraft server implementated from scratch, with simplified mechanics and gameplay targeting embedded devices. The server generates miniature (e.g. 256x256, 128x128) worlds with a number of small biomes.
As of right now, picocraft can handle status requests and allow the player to join the game with basic single block chunks (Although no player inputs are used or saved) with support for std targets - the underlying picocraft_proto and picocraft_core are fully no_std.
To run picocraft, you must have rust installed via rustup.
To run the server on default port 25565 (std targets only for now), run this command:
$ cargo run --releaseYou can also install the server binary from https://crates.io/crates/picocraft:
$ cargo install picocraft --lockedNote: this may not be up to date, and installing from this repo's main branch may be more featureful:
$ cargo install --git https://github.com/Sycrosity/picocraft --lockedAny and all contributions are welcome! Pull requests are checked for cargo test, cargo clippy and cargo fmt.
This project wouldn't be possible without learning from the amazing work put in by the following projects:
- PicoLimbo - An ultra-lightweight, multi-version Minecraft limbo server written in Rust, actively maintained and updated to the latest version
- valence - A Rust framework for building Minecraft: Java Edition servers. Valence hasn't had a major update for a while now.
- minecraft.wiki - The best source of information for minecraft mechanics and inner workings (and especially packets, since the
wiki.vgmerge)
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.