[package]
name = "es-engine"
version = "0.1.0"
edition = "2021"
authors = ["ESEngine Team"]
description = "High-performance 2D game engine for web and mobile platforms | 高性能2D游戏引擎，支持Web和移动平台"
license = "MIT"
repository = "https://github.com/esengine/ecs-framework"
keywords = ["game-engine", "2d", "webgl", "wasm", "ecs"]
categories = ["game-engines", "wasm", "graphics"]

[lib]
crate-type = ["cdylib", "rlib"]

[features]
default = ["console_error_panic_hook"]

[dependencies]
# WASM bindings | WASM绑定
wasm-bindgen = "0.2"
js-sys = "0.3"

# Web APIs | Web API
web-sys = { version = "0.3", features = [
    # Core | 核心
    "Window",
    "Document",
    "Element",
    "HtmlCanvasElement",
    "HtmlCollection",
    "Navigator",
    "Screen",
    "Performance",
    "console",

    # WebGL2 | WebGL2渲染
    "WebGl2RenderingContext",
    "WebGlProgram",
    "WebGlShader",
    "WebGlBuffer",
    "WebGlTexture",
    "WebGlUniformLocation",
    "WebGlVertexArrayObject",
    "WebGlFramebuffer",

    # Events | 事件
    "KeyboardEvent",
    "MouseEvent",
    "TouchEvent",
    "TouchList",
    "Touch",

    # Image | 图像
    "HtmlImageElement",
    "ImageData",
]}

# Math library | 数学库
glam = { version = "0.24", features = ["bytemuck"] }

# Error handling | 错误处理
thiserror = "1.0"

# Logging | 日志
log = "0.4"
console_log = { version = "1.0", features = ["color"] }

# Panic hook for better error messages | 更好的错误信息
console_error_panic_hook = { version = "0.1", optional = true }

# Serialization | 序列化
serde = { version = "1.0", features = ["derive"] }

# Byte manipulation | 字节操作
bytemuck = { version = "1.14", features = ["derive"] }

[dev-dependencies]
wasm-bindgen-test = "0.3"

[profile.release]
opt-level = 3
lto = true
codegen-units = 1

[profile.dev]
opt-level = 1
