Pumpkin is split into multiple crates, thus having a set project structure between contributors is essential.
The core crate has some special rules that only apply to it:
- It may not depend on any other pumpkin crate
- There may not be any files directly under src/, except for the mod.rs file (this is to help with organisation)
pumpkin-protocol
- contains definitions for packet types and their serialization (be it through serde, or manually implementingClientPacket
/ServerPacket
), only thepumpkin
crate may depend on thispumpkin-macros
- similarly topumpkin-core
, it may not depend on any other pumpkin crate