1
0
mirror of https://github.com/Pumpkin-MC/Pumpkin synced 2025-02-06 14:29:49 +00:00
Pumpkin/README.md
Mili 12866bce36 feat: add linear chunk format (#494)
* feat: add linear chunk format with zstd lib dependency

* fixing a typo

* refactor: rename file handling methods for clarity and more lint fixes

* refactor: improve clarity on validation methods

* fix: invert version check in LinearFile header validation

* fix: remove leading dot from file path formatting in LinearChunkFormat

* refactor: improve error handling and method naming in LinearFile operations

* fix: ensure file is flushed after writing in LinearFile operations

* fix: lints and warnings

* fix: more lints

* refactor: streamline LinearFile structure and improve header management

* refactor: change chunks_headers to use Box for improved memory management and use exception to know if file exist

* refactor: update path parameter types to PathBuf for consistency and improved usability

* refactor: update path parameter types to Path avoiding uknown changes and adjust file truncation logic

* fix: avoid using the same path for different tests

* fix: fix some bytes sizes for the header based on the spec

* refactor: enable file truncation when opening for writing and simplify save method

* fix: removing IoSlices for windows issues.

* fix: clippy lints

* refactor: improve incompatible files cheking, some documentation and variable nameing

* feat: add file_format to ChunkConfig and implement format handling in Level

* feat: add error logging for invalid file headers and data size checks in LinearFile and tmp filenames on write

* feat: implement file locking mechanism for concurrent chunk read/write operations

* fix: bug at desserializing the chunks headers.

* Refactor chunk file locking mechanism to use DashMap for improved concurrency and simplify read/write guard management

* docs: Update documentation for LinearVersion enum with format references

* re-check workflows

* re-check lints 2

* rename config values

* Some doc improvements

---------

Co-authored-by: Mili <santiagoogle@hotmail.com>
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-02-05 22:28:20 +01:00

111 lines
3.2 KiB
Markdown

<div align="center">
# Pumpkin
![CI](https://github.com/Snowiiii/Pumpkin/actions/workflows/rust.yml/badge.svg)
[![Discord](https://img.shields.io/discord/1268592337445978193.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/wT8XjrjKkf)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
![Current version)](https://img.shields.io/badge/current_version-1.21.4-blue)
</div>
[Pumpkin](https://pumpkinmc.org/) is a Minecraft server built entirely in Rust, offering a fast, efficient,
and customizable experience. It prioritizes performance and player enjoyment while adhering to the core mechanics of the game.
![image](https://github.com/user-attachments/assets/7e2e865e-b150-4675-a2d5-b52f9900378e)
## What Pumpkin wants to achieve
- **Performance**: Leveraging multi-threading for maximum speed and efficiency.
- **Compatibility**: Supports the latest Minecraft server version and adheres to vanilla game mechanics.
- **Security**: Prioritizes security by preventing known security exploits.
- **Flexibility**: Highly configurable, with the ability to disable unnecessary features.
- **Extensibility**: Provides a foundation for plugin development.
## What Pumpkin will not
- Be compatible with plugins or mods for other servers
> [!IMPORTANT]
> Pumpkin is currently under heavy development.
## Features (WIP)
- [x] Configuration (toml)
- [x] Server Status/Ping
- Networking
- [x] Encryption
- [x] Packet Compression
- Player Configuration
- [x] Registries (biome types, paintings, dimensions)
- [x] Server Brand
- [x] Server Links
- [x] Set Resource Pack
- [x] Cookies
- World
- [x] World Joining
- [x] Player Tab-list
- [x] World Loading
- [x] Lighting
- [x] Entity Spawning
- [x] Bossbar
- [x] Chunk Loading (Vanilla, Linear)
- [x] Chunk Generation
- [x] Chunk Saving (Vanilla, Linear)
- [x] World Time
- [x] Scoreboard
- [x] World Borders
- [x] World Saving
- [ ] Redstone
- [ ] Liquid Physics
- Player
- [x] Player Skins
- [x] Player Client brand
- [x] Player Teleport
- [x] Player Movement
- [x] Player Animation
- [x] Player Inventory
- [x] Player Combat
- Entities
- [x] Non-Living (Minecart, Eggs...)
- [x] Players
- [x] Mobs
- [x] Animals
- [x] Entity AI
- [ ] Boss
- Server
- [x] Plugins
- [x] Query
- [x] RCON
- [x] Inventories
- [x] Particles
- [x] Chat
- [x] Commands
- [x] Permissions
- [x] Translations
- Proxy
- [x] Bungeecord
- [x] Velocity
Check out our [Github Project](https://github.com/orgs/Pumpkin-MC/projects/3) to see current progress
## How to run
See our [Quick Start](https://pumpkinmc.org/about/quick-start.html) Guide to get Pumpkin running
## Contributions
Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md)
## Docs
The Documentation of Pumpkin can be found at https://pumpkinmc.org/
## Communication
Consider joining our [discord](https://discord.gg/wT8XjrjKkf) to stay up-to-date on events, updates, and connect with other members.
## Funding
If you want to fund me and help the project, Check out my [GitHub sponsors](https://github.com/sponsors/Snowiiii) or my [PayPal](https://www.paypal.me/alexxmedvedev)