Skip to main content

Crate bedrock_world

Crate bedrock_world 

Source
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.dat header parsing, validation, and atomic write helpers. level.dat parsing 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.