Expand description
Unity Binary Asset Parser
This crate provides functionality to parse Unity binary file formats including:
- AssetBundle files (.bundle, .unity3d)
- Serialized Asset files (.assets)
- Resource files
§Features
- AssetBundle parsing: Support for UnityFS format
- Compression support: LZ4, LZMA, and other compression formats
- TypeTree parsing: Dynamic type information for objects
- Object extraction: Extract Unity objects from binary data
§Feature Flags
texture: Texture processing (basic formats + PNG export)audio: Audio processing (all formats including Vorbis, MP3)mesh: Mesh processing (parsing + basic export)sprite: Sprite processing (requires texture support)texture-advanced: Advanced texture formats (DXT, ETC, ASTC) - requires texture2ddecodermesh-export: Advanced mesh export (OBJ format)
§Example
use unity_asset_binary::load_bundle_from_memory;
use std::fs;
// Load an AssetBundle file
let data = fs::read("example.bundle")?;
let bundle = load_bundle_from_memory(data)?;
// Access contained assets
for asset in &bundle.assets {
println!("Asset with {} objects", asset.object_count());
// Access objects in the asset
for object in &asset.objects {
println!(" Object: {} (type_id: {})", object.path_id, object.type_id);
}
}Re-exports§
pub use asset::Asset;pub use asset::AssetFileInfo;pub use asset::AssetProcessor;pub use asset::FileIdentifier;pub use asset::FileStatistics;pub use asset::HeaderFormatInfo;pub use asset::HeaderValidation;pub use asset::ObjectInfo;pub use asset::ParsingOptions;pub use asset::ParsingStats;pub use asset::SerializedFile;pub use asset::SerializedFileHeader;pub use asset::SerializedFileParser;pub use asset::SerializedType;pub use asset::TypeRegistry;pub use asset::class_ids;pub use asset::create_processor as create_asset_processor;pub use asset::get_file_info as get_asset_file_info;pub use asset::get_parsing_options as get_asset_parsing_options;pub use asset::get_supported_versions as get_supported_asset_versions;pub use asset::is_valid_serialized_file;pub use asset::is_version_supported as is_asset_version_supported;pub use asset::parse_serialized_file;pub use asset::parse_serialized_file_from_path;pub use bundle::AssetBundle;pub use bundle::BundleCompression;pub use bundle::BundleFileInfo;pub use bundle::BundleFormatInfo;pub use bundle::BundleHeader;pub use bundle::BundleInfo;pub use bundle::BundleLoadOptions;pub use bundle::BundleLoader;pub use bundle::BundleParser;pub use bundle::BundleProcessor;pub use bundle::BundleResourceManager;pub use bundle::BundleStatistics;pub use bundle::CompressionOptions;pub use bundle::CompressionStats;pub use bundle::DirectoryNode;pub use bundle::LoaderStatistics;pub use bundle::ParsingComplexity;pub use bundle::create_processor as create_bundle_processor;pub use bundle::extract_file_from_bundle;pub use bundle::get_bundle_info;pub use bundle::get_supported_formats as get_supported_bundle_formats;pub use bundle::is_valid_bundle;pub use bundle::list_bundle_contents;pub use bundle::load_bundle;pub use bundle::load_bundle_from_memory;pub use bundle::load_bundle_with_options;pub use error::BinaryError;pub use error::Result;pub use metadata::AssetMetadata;pub use metadata::AssetReference;pub use metadata::AssetRelationships;pub use metadata::AssetStatistics;pub use metadata::ComponentRelationship;pub use metadata::DependencyAnalyzer;pub use metadata::DependencyGraph;pub use metadata::DependencyInfo;pub use metadata::ExternalReference;pub use metadata::ExtractionConfig;pub use metadata::ExtractionResult;pub use metadata::ExtractionStats;pub use metadata::FileInfo;pub use metadata::GameObjectHierarchy;pub use metadata::InternalReference;pub use metadata::MemoryUsage;pub use metadata::MetadataExtractor;pub use metadata::MetadataProcessor;pub use metadata::ObjectStatistics;pub use metadata::ObjectSummary;pub use metadata::PerformanceMetrics;pub use metadata::ProcessingOptions;pub use metadata::RelationshipAnalyzer;pub use metadata::create_comprehensive_processor;pub use metadata::create_performance_processor;pub use metadata::create_processor as create_metadata_processor;pub use metadata::extract_basic_metadata;pub use metadata::extract_metadata_with_config;pub use metadata::get_asset_statistics;pub use metadata::get_recommended_config;pub use metadata::is_extraction_supported;pub use object::ObjectInfo as UnityObjectInfo;pub use object::UnityObject;pub use reader::BinaryReader;pub use reader::ByteOrder;pub use typetree::ParsingStats as TypeTreeParsingStats;pub use typetree::TypeInfo;pub use typetree::TypeRegistry as TypeTreeRegistry;pub use typetree::TypeTree;pub use typetree::TypeTreeBuilder;pub use typetree::TypeTreeInfo;pub use typetree::TypeTreeNode;pub use typetree::TypeTreeParser;pub use typetree::TypeTreeProcessor;pub use typetree::TypeTreeSerializer;pub use typetree::TypeTreeStatistics;pub use typetree::TypeTreeValidator;pub use typetree::ValidationReport;pub use typetree::build_common_typetree;pub use typetree::create_processor as create_typetree_processor;pub use typetree::get_parsing_method as get_typetree_parsing_method;pub use typetree::get_typetree_info;pub use typetree::is_version_supported as is_typetree_version_supported;pub use typetree::parse_object_with_typetree;pub use typetree::parse_typetree;pub use typetree::serialize_object_with_typetree;pub use typetree::validate_typetree;pub use unity_objects::GameObject;pub use unity_objects::ObjectRef;pub use unity_objects::Quaternion;pub use unity_objects::Transform;pub use unity_objects::Vector3;pub use unity_version::UnityFeature;pub use unity_version::UnityVersion;pub use unity_version::UnityVersionType;pub use unity_version::VersionCompatibility;pub use webfile::WebFile;pub use webfile::WebFileCompression;pub use texture::BasicDecoder;pub use texture::CompressedDecoder;pub use texture::CrunchDecoder;pub use texture::ExportOptions;pub use texture::GLTextureSettings;pub use texture::MobileDecoder;pub use texture::StreamingInfo;pub use texture::Texture2D;pub use texture::Texture2DConverter;pub use texture::Texture2DProcessor;pub use texture::TextureDecoder;pub use texture::TextureExporter;pub use texture::TextureFormat;pub use texture::TextureProcessor;pub use texture::TextureSwizzler;pub use texture::create_processor;pub use texture::decode_texture_data;pub use texture::export_image;pub use texture::get_supported_formats;pub use texture::is_format_supported;pub use audio::AudioAnalysis;pub use audio::AudioClip;pub use audio::AudioClipConverter;pub use audio::AudioClipMeta;pub use audio::AudioClipProcessor;pub use audio::AudioCompressionFormat;pub use audio::AudioDecoder;pub use audio::AudioExporter;pub use audio::AudioFormat;pub use audio::AudioFormatInfo;pub use audio::AudioInfo;pub use audio::AudioProcessor;pub use audio::AudioProperties;pub use audio::DecodedAudio;pub use audio::FMODSoundType;pub use audio::create_processor as create_audio_processor;pub use audio::decode_audio_data;pub use audio::export_audio;pub use audio::get_supported_formats as get_supported_audio_formats;pub use audio::is_format_supported as is_audio_format_supported;pub use sprite::ProcessingOptions as SpriteProcessingOptions;pub use sprite::Sprite;pub use sprite::SpriteAtlas;pub use sprite::SpriteBorder;pub use sprite::SpriteConfig;pub use sprite::SpriteInfo;pub use sprite::SpriteManager;pub use sprite::SpriteOffset;pub use sprite::SpriteParser;pub use sprite::SpritePivot;pub use sprite::SpriteProcessor;pub use sprite::SpriteRect;pub use sprite::SpriteRenderData;pub use sprite::SpriteResult;pub use sprite::SpriteSettings;pub use sprite::SpriteStats;pub use sprite::create_full_manager as create_full_sprite_manager;pub use sprite::create_manager as create_sprite_manager;pub use sprite::create_performance_manager as create_performance_sprite_manager;pub use sprite::extract_sprite_image;pub use sprite::get_recommended_config as get_recommended_sprite_config;pub use sprite::get_sprite_area;pub use sprite::get_sprite_aspect_ratio;pub use sprite::is_atlas_sprite;pub use sprite::is_nine_slice_sprite;pub use sprite::is_sprite_feature_supported;pub use sprite::parse_sprite;pub use sprite::validate_sprite;pub use mesh::AABB;pub use mesh::BlendShape;pub use mesh::BlendShapeChannel;pub use mesh::BlendShapeData;pub use mesh::BlendShapeVertex;pub use mesh::ChannelInfo;pub use mesh::CompressedMesh;pub use mesh::Mesh;pub use mesh::MeshConfig;pub use mesh::MeshInfo;pub use mesh::MeshManager;pub use mesh::MeshParser;pub use mesh::MeshProcessor;pub use mesh::MeshResult;pub use mesh::MeshStats;pub use mesh::PackedFloatVector;pub use mesh::PackedIntVector;pub use mesh::ProcessingOptions as MeshProcessingOptions;pub use mesh::StreamingInfo as MeshStreamingInfo;pub use mesh::SubMesh;pub use mesh::VertexData;pub use mesh::create_full_manager as create_full_mesh_manager;pub use mesh::create_manager as create_mesh_manager;pub use mesh::create_performance_manager as create_performance_mesh_manager;pub use mesh::export_mesh_to_obj;pub use mesh::get_mesh_bounds;pub use mesh::get_recommended_config as get_recommended_mesh_config;pub use mesh::get_triangle_count;pub use mesh::get_vertex_count;pub use mesh::has_blend_shapes;pub use mesh::has_streaming_data;pub use mesh::is_compressed_mesh;pub use mesh::is_mesh_feature_supported;pub use mesh::parse_mesh;pub use mesh::validate_mesh;
Modules§
- asset
- Unity asset processing module
- audio
- Audio processing module
- bundle
- Unity AssetBundle processing module
- compression
- Compression support for Unity binary files
- error
- Error types for Unity binary parsing
- mesh
- Unity Mesh processing module
- metadata
- Unity asset metadata processing module
- object
- Unity object parsing and representation
- performance
- Performance Optimization and Monitoring
- reader
- Binary data reader for Unity files
- sprite
- Unity Sprite processing module
- texture
- Texture processing module
- typetree
- Unity TypeTree processing module
- unity_
objects - Unity Core Object Types
- unity_
version - Unity Version Management System
- webfile
- Unity WebFile parsing