Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jorgenpt/uasset-rs

Parsing of Unreal Engine asset files (uassets) in Rust
https://github.com/jorgenpt/uasset-rs

Last synced: 5 days ago
JSON representation

Parsing of Unreal Engine asset files (uassets) in Rust

Awesome Lists containing this project

README

        

[![Build status](https://github.com/jorgenpt/uasset-rs/workflows/Rust/badge.svg)](https://github.com/jorgenpt/uasset-rs/actions?query=workflow%3ARust)
[![Crate](https://img.shields.io/crates/v/uasset.svg)](https://crates.io/crates/uasset)
[![API](https://docs.rs/uasset/badge.svg)][docs-rs]
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE-MIT)
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE-APACHE)

# uasset

uasset supports parsing `.uasset` files from Unreal Engine in pure Rust, to aid in building tools that reason about Unreal assets without needing to
boot up an entire editor. Most of the format has been gleaned from Unreal Engine's own parsing code, which you can find in [the official UnrealEngine repo][unrealengine]
if you have permission. (Specifically, a lot of it was informed by [PackageFileSummary.h][packagefilesummary-h] and [PackageFileSummary.cpp][packagefilesummary-cpp]).

It's designed to work with Unreal Engine assets as old as 4.10 (but might work farther back -- let me know!), and it's intended to be updated to work with the latest engine
version (at time of writing, that is 4.26).

## Usage

You can find details on how to use it in your project in [the documentation on docs.rs][docs-rs].

## Development

Whenever there's a new Unreal version released, uasset-rs most likely needs to be updated to support the new version. If you're interested in contributing, you can see
[UNREAL_UPGRADES.md](UNREAL_UPGRADES.md) for a quick overview of what that process looks like for me.

## License

`uasset-rs` is licensed under either of

- Apache License, Version 2.0
([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license
([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

at your option.

## Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.

[unrealengine]: https://github.com/EpicGames/UnrealEngine/
[packagefilesummary-h]: https://github.com/EpicGames/UnrealEngine/blob/ue5-main/Engine/Source/Runtime/CoreUObject/Public/UObject/PackageFileSummary.h
[packagefilesummary-cpp]: https://github.com/EpicGames/UnrealEngine/blob/ue5-main/Engine/Source/Runtime/CoreUObject/Private/UObject/PackageFileSummary.cpp
[docs-rs]: https://docs.rs/uasset