Expand description
Tools for inspecting and editing Minecraft Bedrock LevelDB worlds.
bedrock-world focuses on world-level concepts layered above
bedrock-leveldb: level.dat, little-endian Bedrock NBT, chunk and
subchunk decoding, player records, entity summaries, biome data, map/village
records, and scan-oriented APIs for launchers or offline tools.
The default APIs are deliberately lazy. Opening a BedrockWorld does not
parse the full database; callers choose targeted operations such as
read_level_dat, BedrockWorld::list_players_blocking,
BedrockWorld::parse_chunk_blocking, or BedrockWorld::scan_items_blocking.
Async wrappers use tokio::task::spawn_blocking so LevelDB and NBT work does
not run on foreground async tasks.
§Features
docs.rs builds this crate with all features enabled. Default builds enable
async and the bedrock-leveldb backend. Disable default features for
pure parsing, in-memory storage, level.dat, and NBT workflows that should
not depend on a database backend.
Re-exports§
pub use chunk::ActorDigestKey;pub use chunk::ActorUid;pub use chunk::BedrockDbKey;pub use chunk::BlockPalette;pub use chunk::BlockPos;pub use chunk::BlockState;pub use chunk::Chunk;pub use chunk::ChunkKey;pub use chunk::ChunkPos;pub use chunk::ChunkRecord;pub use chunk::ChunkRecordTag;pub use chunk::ChunkVersion;pub use chunk::Dimension;pub use chunk::EntityData;pub use chunk::GlobalRecordKind;pub use chunk::LEGACY_SUBCHUNK_BLOCK_COUNT;pub use chunk::LEGACY_SUBCHUNK_MIN_VALUE_LEN;pub use chunk::LEGACY_SUBCHUNK_WITH_LIGHT_VALUE_LEN;pub use chunk::LEGACY_TERRAIN_BLOCK_COUNT;pub use chunk::LEGACY_TERRAIN_VALUE_LEN;pub use chunk::LegacyBiomeSample;pub use chunk::LegacySubChunk;pub use chunk::LegacyTerrain;pub use chunk::MapRecordId;pub use chunk::ParsedVillageKey;pub use chunk::SubChunk;pub use chunk::SubChunkDecodeMode;pub use chunk::SubChunkFormat;pub use chunk::VillageRecordKind;pub use chunk::block_storage_index;pub use discover::WorldDiscovery;pub use discover::WorldSummary;pub use discover::discover_worlds;pub use error::BedrockWorldError;pub use error::BedrockWorldErrorKind;pub use error::Result;pub use level_dat::LevelDatDocument;pub use level_dat::LevelDatHeader;pub use level_dat::LevelDatReadWarning;pub use level_dat::parse_level_dat_document;pub use level_dat::read_level_dat;pub use level_dat::read_level_dat_document;pub use level_dat::write_level_dat_atomic;pub use level_dat::write_level_dat_document;pub use level_dat::read_level_dat_async;pub use level_dat::write_level_dat_atomic_async;pub use nbt::NbtEvent;pub use nbt::NbtReader;pub use nbt::NbtRef;pub use nbt::NbtTag;pub use nbt::NbtValue;pub use nbt::NbtView;pub use nbt::NbtWriter;pub use parsed::ActorRecord;pub use parsed::ActorResolution;pub use parsed::ActorSource;pub use parsed::Biome2d;pub use parsed::Biome3d;pub use parsed::BlockEntityRecord;pub use parsed::HardcodedSpawnAreaKind;pub use parsed::HeightMap2d;pub use parsed::ItemStack;pub use parsed::MapKnownFields;pub use parsed::MapPixels;pub use parsed::ParsedActorDigest;pub use parsed::ParsedBiomeData;pub use parsed::ParsedBiomeStorage;pub use parsed::ParsedBlockEntity;pub use parsed::ParsedChunkData;pub use parsed::ParsedChunkRecord;pub use parsed::ParsedChunkRecordValue;pub use parsed::ParsedDbEntry;pub use parsed::ParsedDbValue;pub use parsed::ParsedEntity;pub use parsed::ParsedGlobalData;pub use parsed::ParsedHardcodedSpawnArea;pub use parsed::ParsedMapData;pub use parsed::ParsedPlayer;pub use parsed::ParsedVillageData;pub use parsed::ParsedWorld;pub use parsed::RetentionMode;pub use parsed::WorldParseCategories;pub use parsed::WorldParseOptions;pub use parsed::WorldParseReport;pub use player::PlayerData;pub use player::PlayerId;pub use query::BlockEntityOverlay;pub use query::BlockTip;pub use query::ChunkDetail;pub use query::ChunkRecordDetail;pub use query::EntityOverlay;pub use query::HardcodedSpawnAreaOverlay;pub use query::RegionOverlayQuery;pub use query::RegionOverlayQueryOptions;pub use query::SelectionStats;pub use query::SlimeChunkBounds;pub use query::SlimeChunkWindow;pub use query::SlimeWindowSize;pub use query::VillageOverlay;pub use query::VillageOverlayIndex;pub use query::WriteGuard;pub use query::delete_chunks_blocking;pub use query::is_bedrock_slime_chunk;pub use query::is_slime_chunk;pub use query::query_block_tip_blocking;pub use query::query_chunk_detail_blocking;pub use query::query_region_overlays_blocking;pub use query::query_region_overlays_blocking_with_control;pub use query::query_selection_stats_blocking;pub use query::query_slime_chunk_windows;pub use query::write_chunk_record_nbt_blocking;pub use storage::MemoryStorage;pub use storage::POCKET_CHUNKS_DAT_TERRAIN_VALUE_LEN;pub use storage::PocketChunksDatStorage;pub use storage::StorageBatch;pub use storage::StorageCancelFlag;pub use storage::StorageEntry;pub use storage::StorageEntryRef;pub use storage::StorageOp;pub use storage::StoragePipelineOptions;pub use storage::StorageProgressSink;pub use storage::StorageReadOptions;pub use storage::StorageScanMode;pub use storage::StorageScanOutcome;pub use storage::StorageScanProgress;pub use storage::StorageThreadingOptions;pub use storage::StorageVisitorControl;pub use storage::WorldStorage;pub use storage::backend::BedrockLevelDbStorage;pub use world::BedrockWorld;pub use world::CancelFlag;pub use world::ChunkBounds;pub use world::ExactSurfaceBiomeLoad;pub use world::ExactSurfaceSubchunkPolicy;pub use world::OpenOptions;pub use world::ProgressSink;pub use world::RenderBlockEntity;pub use world::RenderChunkData;pub use world::RenderChunkLoadOptions;pub use world::RenderChunkPriority;pub use world::RenderChunkRegion;pub use world::RenderChunkRequest;pub use world::RenderLoadStats;pub use world::RenderRegionData;pub use world::RenderRegionLoadOptions;pub use world::SurfaceColumn;pub use world::SurfaceColumnOptions;pub use world::TerrainColumnBiome;pub use world::TerrainColumnOverlay;pub use world::TerrainColumnSample;pub use world::TerrainColumnSamples;pub use world::TerrainColumnWater;pub use world::TerrainSampleSource;pub use world::TerrainSurfaceRole;pub use world::WorldFormat;pub use world::WorldFormatHint;pub use world::WorldPipelineOptions;pub use world::WorldScanOptions;pub use world::WorldScanProgress;pub use world::WorldStorageHandle;pub use world::WorldThreadingOptions;pub use world::WorldTransaction;pub use world::terrain_surface_overlay_alpha;pub use world::terrain_surface_role;
Modules§
- chunk
- Chunk keys, subchunk formats, palette data, and legacy terrain helpers. Bedrock chunk keys, coordinates, and subchunk payload parsing.
- discover
- Filesystem discovery for Bedrock world folders. Discovery helpers for locating Bedrock world folders on disk.
- error
- Crate-wide error and result types. Error and result types for the public API.
- level_
dat level.datheader parsing, validation, and atomic write helpers.level.datparsing and atomic write helpers.- nbt
- Little-endian Bedrock NBT reader and writer. Little-endian Bedrock NBT reader and writer.
- parsed
- Structured parsers for world, chunk, entity, biome, map, and village data. Structured parsers layered above raw Bedrock LevelDB records.
- player
- Player identifiers and raw player record helpers. Player record identifiers and raw player payload helpers.
- query
- Professional map query helpers and guarded world edits. Professional map queries used by map viewers and offline tools.
- storage
- Storage abstraction and LevelDB backend adapters.
Storage abstraction used by
crate::BedrockWorld. - world
- High-level lazy world handle and scan/render helpers. High-level lazy world access built on top of the storage layer.