mirror of
https://git.pumpin.online/funkpower/catena.git
synced 2026-10-23 03:07:13 +00:00
book-pipeline had its own copy of bibclean's author recovery. Bound on all four surfaces so it can stop. Checked against that Python over all 5,385 books in the library: 5,375 identical. On the other ten the Python had taken a translator, an illustrator or the publisher off a copyright line — Sally-Ann Spencer for *The Dwarves*, Thomas Nelson for a table of contents, C. S. Lewis for a book about Tolkien — and bibclean either finds the real author in the Library of Congress block or says nothing. Every one of the ten was read by hand.
75 lines
2.5 KiB
TOML
75 lines
2.5 KiB
TOML
[package]
|
|
name = "catena"
|
|
description = "The catena libraries behind one surface, for calling in process rather than as a subprocess."
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
|
|
# wasm-pack ships a wasm-opt older than the WebAssembly rustc now emits, and
|
|
# it rejects the module rather than assuming the features are allowed. Naming
|
|
# them keeps the optimisation instead of turning it off; every one is years
|
|
# old and in every runtime that matters.
|
|
[package.metadata.wasm-pack.profile.release]
|
|
wasm-opt = [
|
|
"-O",
|
|
"--enable-bulk-memory",
|
|
"--enable-nontrapping-float-to-int",
|
|
"--enable-sign-ext",
|
|
"--enable-mutable-globals",
|
|
"--enable-reference-types",
|
|
]
|
|
|
|
[lib]
|
|
name = "catena"
|
|
path = "src/lib.rs"
|
|
# `cdylib` for the bindings, `rlib` so the workspace can still depend on it.
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
[dependencies]
|
|
booksniff.workspace = true
|
|
bibclean.workspace = true
|
|
chunkmd.workspace = true
|
|
citefind.workspace = true
|
|
corpus-core.workspace = true
|
|
idnorm.workspace = true
|
|
cuekit.workspace = true
|
|
cuepack.workspace = true
|
|
cueseg.workspace = true
|
|
mdscrub.workspace = true
|
|
mdsplit.workspace = true
|
|
rrf.workspace = true
|
|
seriesof.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
textkit.workspace = true
|
|
|
|
pyo3 = { workspace = true, optional = true }
|
|
|
|
# The JavaScript build. Only ever compiled for a wasm32 target; on any other
|
|
# the module is compiled out and these sit unused.
|
|
wasm-bindgen = { workspace = true, optional = true }
|
|
serde-wasm-bindgen = { workspace = true, optional = true }
|
|
|
|
[features]
|
|
# Only maturin turns this on. pyo3's extension-module feature leaves the
|
|
# Python symbols to be resolved by the interpreter at load time, so an
|
|
# ordinary `cargo build` would fail to link if it were on by default.
|
|
python = ["dep:pyo3"]
|
|
# The C ABI. Off by default so an ordinary build does not also export a
|
|
# hundred symbols nobody asked for.
|
|
capi = []
|
|
# JavaScript and TypeScript, through WebAssembly.
|
|
wasm = ["dep:wasm-bindgen", "dep:serde-wasm-bindgen"]
|
|
|
|
# Not `workspace = true`. The workspace forbids unsafe, and a C ABI is unsafe
|
|
# by definition: it takes raw pointers from a caller this cannot see. The
|
|
# allowance is the narrowest thing that compiles — every `unsafe` in this
|
|
# crate is in `src/capi.rs`, and `unsafe_op_in_unsafe_fn` keeps each one
|
|
# spelled out rather than inherited from the function signature.
|
|
[lints.rust]
|
|
unsafe_code = "allow"
|
|
unsafe_op_in_unsafe_fn = "deny"
|
|
missing_docs = "warn"
|