dirkengine 0.1.0

A pure Rust Vulkan game engine
Documentation
# `dirkengine` PACKAGE

[package]
name = "dirkengine"
default-run = "dirkengine"
description = "A pure Rust Vulkan game engine"
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
version.workspace = true

homepage.workspace = true
authors.workspace = true
documentation.workspace = true

[dependencies]
anyhow.workspace = true
thiserror.workspace = true
tracing.workspace = true
glam.workspace = true
piquel-log.workspace = true

dirk_threads.workspace = true
dirk_utils.workspace = true
dirk_events.workspace = true
dirk_platform.workspace = true
dirk_renderer.workspace = true
dirk_universe.workspace = true
dirk_world.workspace = true
dirk_assets.workspace = true
dirk_player.workspace = true

[build-dependencies]
dirk_build.workspace = true

[lints]
workspace = true

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["-Zunstable-options", "--cfg", "docsrs"]

[features]
default = ["editor"]

editor = []

# WORKSPACE CONFIGURATION

[workspace]
resolver = "3"
members = [
    "crates/*",
    "shaders"
]

[workspace.package]
edition = "2024"
license = "Apache-2.0"
repository = "https://github.com/DirkEngine/DirkEngine"
rust-version = "1.94.0"
version = "0.1.0"

homepage = "https://piquel.fr" # TODO: should piquel.fr/dirk of dirkengine.fr
authors = ["Piquel <contact@piquel.fr>"]
documentation = "https://docs.rs/dirkengine"
keywords = ["game", "engine", "gamedev", "graphics", "vulkan"]
categories = ["game-engines", "graphics", "rendering", "vulkan"]

[workspace.dependencies]
# Basic stuff
time = { version = "0.3", features = ["formatting", "macros"] }
tracing = "0.1"
piquel-log = { version = "0.0.5", features = ["log", "file"] }
parking_lot = "0.12"
tempfile = "3"
slotmap = "1"

thiserror = "2"
anyhow = "1"
cargo_metadata = "0.23"

# Engine modules
dirk_build    = { version = "0.1.0", path = "crates/dirk_build" }
dirk_threads  = { version = "0.1.0", path = "crates/dirk_threads" }
dirk_utils    = { version = "0.1.0", path = "crates/dirk_utils" }
dirk_events   = { version = "0.1.0", path = "crates/dirk_events" }
dirk_proc     = { version = "0.1.0", path = "crates/dirk_proc" }
dirk_platform = { version = "0.1.0", path = "crates/dirk_platform" }
dirk_renderer = { version = "0.1.0", path = "crates/dirk_renderer" }
dirk_assets   = { version = "0.1.0", path = "crates/dirk_assets" }
dirk_world    = { version = "0.1.0", path = "crates/dirk_world" }
dirk_universe = { version = "0.1.0", path = "crates/dirk_universe" }
dirk_player   = { version = "0.1.0", path = "crates/dirk_player" }

dirk_shaders  = { version = "0.1.0", path = "shaders" }

# Main Engine Dependencies
winit = "0.31.0-beta.2"
ash = { version = "0.38", features = ["loaded"] }
ash-window = "0.13"
raw-window-handle = "0.6"
glam = "0.32"
gltf = "1"
shaderc = "0.10"
gpu-allocator = { version = "0.28", default-features = false, features = ["std", "vulkan"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = ["full"] }

# Macro dependencies
syn = { version = "2", features = ["full"] }
quote = "1"
pastey = "0.2"
proc-macro2 = "1"

[workspace.lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"

[workspace.lints.clippy]
pedantic = "warn"
unwrap_used = "warn"