Kipferl

Modules

Overview of all kipferl runtime modules

The project and package workflows are available in v0.7.2 and the current source checkout. Homebrew installs the stable release. Choose a version and follow the installation guide.

kipferl includes 50+ native modules implemented in Rust for performance, safety, and a compact binary.

Standalone builds include the common core directly and add the complete runtime when imports need an optional capability. The module APIs do not change between profiles. See Tree-shaken builds for the profile assigned to each module group.

TUI Components

ModuleDescription
tuiBoxes, tables, progress bars, spinners, status messages
inputInteractive prompts: select, multiselect, confirm, password
termTerminal control: size, cursor, raw mode
ansiANSI escape codes for colors and styles

Networking

ModuleDescription
http.clientHTTP/HTTPS client with built-in Rustls certificate verification

Data Formats

ModuleDescription
Data format guideComplete APIs, examples, and compatibility boundaries
jsonJSON file/string reading and writing
yamlYAML 1.2 file/string reading and writing
toml / tomllibTOML reading and writing (tomllib is read-only)
kdlKDL 2.0 file/string reading and writing
xml.etree.ElementTreeFocused XML tree parsing and writing
csvFocused CSV reading and writing
configparserFocused INI/CFG reading and writing

File System

ModuleDescription
osOS interface (environ, path operations)
pathlibObject-oriented paths
globPathname pattern expansion
shutilShell utilities (copy, move, rmtree)
tempfileTemporary files and directories
zipfileZIP archive handling
tarfileTAR archive handling
gzipGZIP compression

Text Processing

ModuleDescription
reRegular expressions
textwrapText wrapping and filling
stringString constants

System

ModuleDescription
subprocessProcess spawning
signalSignal handling
argparseArgument parsing
loggingLogging framework
datetimeDate and time
timeTime functions

Data Structures

ModuleDescription
collectionsSpecialized containers
heapqHeap queue
itertoolsIterator tools
functoolsFunctional utilities

Security

ModuleDescription
hashlibSecure hashes (md5, sha1, sha256)
hmacHMAC message authentication
secretsSecure random generation
base64Base64 encoding

Database

ModuleDescription
sqlite3SQLite database

Other

ModuleDescription
mathMathematical functions
randomRandom number generation
statisticsStatistical functions
uuidUUID generation
dataclassesData classes
typingRuntime annotation helpers and compatibility aliases; limited introspection

Compatibility and limits

These module names describe a focused runtime surface, not complete CPython implementations. The checked-in compatibility report records the tested APIs and baseline skips. Passing that suite does not imply support for every standard-library module or third-party package.

The following behavior is part of the v0.7.0 runtime and was exercised in the release candidate. v0.6.0 predates these changes. Version 0.7 also changes dynamic dotted imports to return their root by default; see the upgrade notes. For source changes after a release, see runtime development and embedded assets.

AreaBehavior to account for
bytearray(n)Integer zero-fill construction is limited to 64 MiB and raises ValueError above the limit. This is not a universal size cap for construction from existing bytes or lists.
itertools.isliceStart and stop must be nonnegative; step must be at least one.
itertools.takewhile, dropwhileReturn eager lists. A predicate that changes the input list's length raises RuntimeError.
heapqKeep collection lengths unchanged during comparison callbacks. Detected length mutations raise RuntimeError; callback exceptions propagate.
copy.deepcopyContainer entries are snapshotted before invoking custom hooks.
http.clientTimeouts must be None or finite, nonnegative values fitting the platform's duration/deadline range. Invalid values raise ValueError when making the request. Response bodies are capped at 8 MiB.
subprocess.runReturns a dictionary, not CPython's CompletedProcess. Captures at most the first 1 MiB of each output stream while draining the rest, so long output is truncated.
Numeric rangesOut-of-range math.ldexp results and struct float32 conversions use ValueError; this runtime does not expose CPython's OverflowError.

For file iteration, exception syntax, third-party dependencies, and actionable failure messages, see Debugging and dependencies.

On this page