diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..33c68be --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,50 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the workflow will run +on: + pull_request: + branches: ["main"] + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + components: clippy + override: true + - uses: Swatinem/rust-cache@v2 + + - uses: actions-rs/cargo@v1 + name: Unit test + with: + token: ${{ secrets.GITHUB_TOKEN }} + command: test + + - uses: actions-rs/cargo@v1 + name: Unit test unreal_helpers + with: + token: ${{ secrets.GITHUB_TOKEN }} + command: test + args: -p unreal_helpers --all-features + + - uses: actions-rs/clippy-check@v1 + name: Clippy check + with: + token: ${{ secrets.GITHUB_TOKEN }} + args: -- -D warnings diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..6d12fc1 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,46 @@ +[workspace] +resolver = "2" +members = [ + "unreal_asset", + "unreal_asset/unreal_asset_base", + "unreal_asset/unreal_asset_properties", + "unreal_asset/unreal_asset_kismet", + "unreal_asset/unreal_asset_exports", + "unreal_asset/unreal_asset_registry", + "unreal_asset/unreal_asset_proc_macro", + "unreal_helpers", +] + +[workspace.package] +version = "0.1.16" +authors = ["AstroTechies", "localcc", "konsti219"] +license = "MIT" +description = "Unreal engine 4/5 asset file parsing library." +repository = "https://github.com/AstroTechies/unreal_asset" + +[workspace.dependencies] +unreal_asset = { path = "./unreal_asset", version = "0.1.16" } +unreal_asset_base = { path = "./unreal_asset/unreal_asset_base", version = "0.1.16" } +unreal_asset_properties = { path = "./unreal_asset/unreal_asset_properties", version = "0.1.16" } +unreal_asset_kismet = { path = "./unreal_asset/unreal_asset_kismet", version = "0.1.16" } +unreal_asset_exports = { path = "./unreal_asset/unreal_asset_exports", version = "0.1.16" } +unreal_asset_registry = { path = "./unreal_asset/unreal_asset_registry", version = "0.1.16" } +unreal_asset_proc_macro = { path = "./unreal_asset/unreal_asset_proc_macro", version = "0.1.16" } +unreal_helpers = { path = "./unreal_helpers", version = "0.1.16" } + +bitflags = "2.4.0" +bitvec = "1.0.1" +byteorder = "1.4.3" +enum_dispatch = "0.3.12" +lazy_static = "1.4.0" +num_enum = "0.6.1" +ordered-float = "3.7.0" +regex = "1.9.3" +serde_json = "1.0.104" +serde = { version = "1.0.183", features = ["derive"] } +thiserror = "1.0.44" + +[profile.release] +opt-level = 3 +lto = true +codegen-units = 1 diff --git a/README.md b/README.md new file mode 100644 index 0000000..4014ab6 --- /dev/null +++ b/README.md @@ -0,0 +1,33 @@ +# unreal_asset + +[![Build status](https://github.com/AstroTechies/unreal_asset/workflows/CI/badge.svg)](https://github.com/AstroTechies/unrealmodding/actions?query=workflow%3ACI) +[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE-MIT) + +Unreal Engine 4/5 asset file parsing library. Initially developed for Astroneer. + +## Crates + +This repo contrains multiple user facing crates for working with Unreal Engine file formats and creating Mods. + +### [unreal_asset](./unreal_asset/) + +[![Documentation](https://docs.rs/unreal_asset/badge.svg)](https://docs.rs/unreal_asset/) +[![Crates.io](https://img.shields.io/crates/v/unreal_asset.svg)](https://crates.io/crates/unreal_asset) + +This core crate allows for parsing of Unreal asset binary files. It is internally split into multiple sub-crates to +improve compile times. + +### [unreal_helpers](./unreal_helpers/) + +[![Documentation](https://docs.rs/unreal_helpers/badge.svg)](https://docs.rs/unreal_helpers/) +[![Crates.io](https://img.shields.io/crates/v/unreal_helpers.svg)](https://crates.io/crates/unreal_helpers) + +Core crate that provides utilities for wotking with Unreal Engine binary files. It is relied on by all the other binary +parsing crates in this repo. + +## License + +Licensed under [MIT license](./LICENSE). + +Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion by you, shall be licensed +as above, without any additional terms or conditions.