mysql-handler 0.1.1

Rust bindings for the MySQL handler
Documentation
[package]
name = "mysql-handler"
version.workspace = true
description = "Rust bindings for the MySQL handler"
readme = "README.md"
authors = ["ren-yamanashi"]
license = "GPL-2.0-only"
edition = "2024"
repository = "https://github.com/ren-yamanashi/rusty_mysql_handler"
homepage = "https://github.com/ren-yamanashi/rusty_mysql_handler"
documentation = "https://docs.rs/mysql-handler"
keywords = ["mysql", "ffi", "plugin", "storage-engine", "handler"]
categories = ["api-bindings", "database", "external-ffi-bindings"]
rust-version = "1.85"
links = "ha_rusty_shim"
# Whitelist what ships to crates.io; excludes mysql-server submodule,
# examples, tests, docs, and dev infra.
include = [
  "/src/**/*.rs",
  "/shim/**/*.cc",
  "/shim/**/*.hpp",
  "/shim/**/*.h",
  "/shim/CMakeLists.txt",
  "/build.rs",
  "/Cargo.toml",
  "/README.md",
  "/LICENSE",
]

[package.metadata.docs.rs]
# `--cfg docsrs` lets future doc-only items gate on it.
rustdoc-args = ["--cfg", "docsrs"]

[workspace]
members = ["examples/engine", "mysql-handler-build", "mysql-handler-macros"]

# Workspace-shared version, inherited by every published crate so a single
# release-plz bump moves all three to the same number in lockstep.
[workspace.package]
version = "0.1.1"

[dependencies]
mysql-handler-macros = { path = "mysql-handler-macros", version = "0.1.1" }
tracing = "0.1.41"

[build-dependencies]
bindgen = "0.71.1"
cmake = "0.1.58"
flate2 = "1.1.9"

[dev-dependencies]
criterion = "0.7"

[[bench]]
name = "ffi_overhead"
harness = false

[[bench]]
name = "callback_overhead"
harness = false

[lints]
workspace = true

[workspace.lints.rust]
unsafe_op_in_unsafe_fn = "deny"
unsafe_code = "warn"
missing_debug_implementations = "warn"
missing_docs = "warn"
unreachable_pub = "warn"
unused_qualifications = "warn"

[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
module_name_repetitions = "allow"
must_use_candidate = "allow"
doc_markdown = "allow"
missing_panics_doc = "allow"
single_match_else = "allow"
manual_let_else = "allow"
undocumented_unsafe_blocks = "deny"
redundant_pub_crate = "warn"

[profile.release]
lto = true
codegen-units = 1
# `catch_unwind` at the FFI boundary requires unwinding panics
panic = "unwind"