Repository

lib-misc-utils

Kinogaki's own small crates: replacements for the helper crates in Kinogaki Studio's dependency tree.

GitHub
kinogaki/lib-misc-utils
Folder
libs/lib-misc-utils/
Crates
20
Rust lines
11,215 in src, 2,943 in tests
This repository Used by other repositories Kinogaki's own `arrayvec`, published under the crates.io name so the frozen naga, wgpu, wgpu-core, wgpu-hal and blake3 resolve to it through `[patch.crates-io]`.arrayvec839 lines Kinogaki's own `bit-set`, published under the crates.io name so the frozen naga and wgpu-core resolve to it through `[patch.crates-io]`.bit-set265 lines Kinogaki's own `bit-vec`, published under the crates.io name so the frozen wgpu-core (and our bit-set) resolve to it through `[patch.crates-io]`.bit-vec525 lines Kinogaki's own `cfg-if`, published under the crates.io name so the frozen naga, wgpu, wgpu-hal, blake3 and libloading resolve to it through `[patch.crates-io]`.cfg-if37 lines Kinogaki's own `codespan-reporting`, published under the crates.io name so the frozen naga resolves to it through `[patch.crates-io]`.codespan-reporting623 lines Kinogaki's own `document-features`, published under the crates.io name so the frozen wgpu and wgpu-core resolve to it through `[patch.crates-io]`.document-features14 lines Kinogaki's own `foldhash`, published under the crates.io name so the frozen hashbrown resolves to it through `[patch.crates-io]` for its default hasher.foldhash144 lines Kinogaki's own `half`, published under the crates.io name so the frozen naga resolves to it through `[patch.crates-io]`.half1.0k lines Fast search for one byte value in a byte slice, in safe code: [`find`], [`rfind`] and [`count`].kinogaki-bytes92 lines The shortest decimal text that reads back as the same `f64`, fast.kinogaki-float-text993 lines Unicode text segmentation and character properties for Kinogaki's text editing and layout, from the Unicode Character Database (version [`UNICODE_VERSION`]):kinogaki-unicode3.5k lines Kinogaki's own `libm`, published under the crates.io name so the frozen naga resolves to it through `[patch.crates-io]`.libm61 lines Kinogaki's own numeric traits, published under the crates.io name `num-traits` so the frozen naga and our `half` resolve to it through `[patch.crates-io]`.num-traits1.2k lines Kinogaki's own `once_cell`, published under the crates.io name so the frozen naga, wgpu-core and read-fonts resolve to it through `[patch.crates-io]`.once_cell158 lines Kinogaki's own `parking_lot`, published under the crates.io name so the frozen wgpu, wgpu-core and wgpu-hal resolve to it through `[patch.crates-io]`.parking_lot723 lines Kinogaki's own `profiling`, published under the crates.io name so the frozen wgpu, wgpu-core and wgpu-hal resolve to it through `[patch.crates-io]`.profiling25 lines Kinogaki's own `rustc-hash`, published under the crates.io name so the frozen naga, naga-types and wgpu-core resolve to it through `[patch.crates-io]`.rustc-hash94 lines Kinogaki's own `shlex`, published under the crates.io name so the frozen cc (blake3's build script, splitting CFLAGS-style variables) resolves to it through `[patch.crates-io]`.shlex99 lines Kinogaki's own `smallvec`, published under the crates.io name so the frozen wgpu, wgpu-core, wgpu-hal and harfrust resolve to it through `[patch.crates-io]`, and used by kinogaki-ui.smallvec719 lines Kinogaki's own `static_assertions`, published under the crates.io name so the frozen wgpu, wgpu-hal and wgpu-types resolve to it through `[patch.crates-io]`.static_assertions39 lines lib-ui1 crate OBJ1 crate
depends on (an edge implied by others shows when you point at a box)used by tests alone

Crates

CrateWhat it isFilesLinesTest lines
arrayvecKinogaki's own arrayvec, published under the crates.io name so the frozen naga, wgpu, wgpu-core, wgpu-hal and blake3 resolve to it through [patch.crates-io].5839144
bit-setKinogaki's own bit-set, published under the crates.io name so the frozen naga and wgpu-core resolve to it through [patch.crates-io].126584
bit-vecKinogaki's own bit-vec, published under the crates.io name so the frozen wgpu-core (and our bit-set) resolve to it through [patch.crates-io].15250
cfg-ifKinogaki's own cfg-if, published under the crates.io name so the frozen naga, wgpu, wgpu-hal, blake3 and libloading resolve to it through [patch.crates-io].13757
codespan-reportingKinogaki's own codespan-reporting, published under the crates.io name so the frozen naga resolves to it through [patch.crates-io].4623124
document-featuresKinogaki's own document-features, published under the crates.io name so the frozen wgpu and wgpu-core resolve to it through [patch.crates-io].11411
foldhashKinogaki's own foldhash, published under the crates.io name so the frozen hashbrown resolves to it through [patch.crates-io] for its default hasher.114471
halfKinogaki's own half, published under the crates.io name so the frozen naga resolves to it through [patch.crates-io].41,039283
kinogaki-bytesFast search for one byte value in a byte slice, in safe code: find, rfind and count.19277
kinogaki-float-textThe shortest decimal text that reads back as the same f64, fast.4993313
kinogaki-unicodeUnicode text segmentation and character properties for Kinogaki's text editing and layout, from the Unicode Character Database (version UNICODE_VERSION):43,547208
libmKinogaki's own libm, published under the crates.io name so the frozen naga resolves to it through [patch.crates-io].161996
num-traitsKinogaki's own numeric traits, published under the crates.io name num-traits so the frozen naga and our half resolve to it through [patch.crates-io].91,17986
once_cellKinogaki's own once_cell, published under the crates.io name so the frozen naga, wgpu-core and read-fonts resolve to it through [patch.crates-io].115838
parking_lotKinogaki's own parking_lot, published under the crates.io name so the frozen wgpu, wgpu-core and wgpu-hal resolve to it through [patch.crates-io].5723263
profilingKinogaki's own profiling, published under the crates.io name so the frozen wgpu, wgpu-core and wgpu-hal resolve to it through [patch.crates-io].1259
rustc-hashKinogaki's own rustc-hash, published under the crates.io name so the frozen naga, naga-types and wgpu-core resolve to it through [patch.crates-io].19441
shlexKinogaki's own shlex, published under the crates.io name so the frozen cc (blake3's build script, splitting CFLAGS-style variables) resolves to it through [patch.crates-io].19930
smallvecKinogaki's own smallvec, published under the crates.io name so the frozen wgpu, wgpu-core, wgpu-hal and harfrust resolve to it through [patch.crates-io], and used by kinogaki-ui.271995
static_assertionsKinogaki's own static_assertions, published under the crates.io name so the frozen wgpu, wgpu-hal and wgpu-types resolve to it through [patch.crates-io].13913

README

lib-misc-utils

Kinogaki's own small crates: replacements for the helper crates in Kinogaki Studio's dependency tree. The owner's direction (2026-10-18): own the code, except high-threat things like cryptography.

Two kinds live here:

  • Our crates, for our code (kinogaki-*): kinogaki-unicode (UAX #29 graphemes and word bounds, combining marks, tables generated from the UCD), kinogaki-bytes (byte search) and kinogaki-float-text (shortest round-trip float text).
  • Our crates under crates.io names, for the frozen crates that use them (wgpu, naga, harfrust, hashbrown, blake3 and cc): half, num-traits, libm, codespan-reporting, parking_lot, arrayvec, smallvec, once_cell, cfg-if, static_assertions, document-features, profiling, rustc-hash, foldhash, bit-vec, bit-set and shlex. Each implements only the API those crates call, and its version is the upstream one plus +kinogaki. Studio and the libraries point at them through the [patch.crates-io] block that lib-ui's tools/vendor.py patch writes, so the frozen consumers stay unedited. Each crate's README says what it covers and how it is tested.

When wgpu or naga are re-frozen, build them against these crates. A new call into an API that is missing here fails to compile, and the fix is to add it with a test.

Rules: unsafe is forbidden, except the documented cores of arrayvec (src/buffer.rs) and parking_lot (src/rwlock/cell.rs). No dependencies outside this repository. Studio checks the repository with tools/check_all.py, and tools/check_architecture.py enforces the rules above.

Licence

MIT OR Apache-2.0, at your option: see LICENSE-MIT and LICENSE-APACHE.