For the complete documentation index, see llms.txt. This page is also available as Markdown.

API Reference

Complete reference for the encoderfile Python package.

from encoderfile import (
    EncoderfileBuilder,
    ModelType,
    TokenizerBuildConfig,
    BatchLongest,
    Fixed,
    TargetSpec,
    read_metadata,
    build,
    build_from_config,
)

EncoderfileBuilder

The primary class for building encoderfile binaries. Validates model files, then embeds ONNX weights, tokenizer configuration, and model metadata into a pre-built base binary before writing the result to disk.

EncoderfileBuilder(*, name, model_type, path, ...)

EncoderfileBuilder(
    *,
    name: str,
    model_type: ModelType | str,
    path: str,
    version: str | None = None,
    output_path: str | None = None,
    cache_dir: str | None = None,
    base_binary_path: str | None = None,
    transform: str | None = None,
    lua_libs: list[str] | None = None,
    tokenizer: TokenizerBuildConfig | None = None,
    validate_transform: bool = True,
    target: str | TargetSpec | None = None,
) -> EncoderfileBuilder

All arguments are keyword-only.

Arguments:

Argument
Type
Default
Description

name

str

required

Model identifier used in API responses and as the default output filename.

model_type

ModelType | str

required

Model architecture. Determines how inference outputs are structured.

path

str

required

Path to a directory containing model.onnx, tokenizer.json, and config.json.

version

str | None

"0.1.0"

Model version string embedded in the binary.

output_path

str | None

./<name>.encoderfile

Destination path for the compiled binary.

cache_dir

str | None

system default

Directory for caching intermediate build artifacts.

base_binary_path

str | None

None

Path to a local pre-built base binary. Skips network download when provided.

transform

str | None

None

Inline Lua post-processing script or file path applied to model logits.

lua_libs

list[str] | None

None

Additional Lua library paths available to the transform script.

tokenizer

TokenizerBuildConfig | None

None

Tokenizer padding and truncation settings. Uses tokenizer defaults when None.

validate_transform

bool

True

Perform a dry-run validation of the transform script before building.

target

str | TargetSpec | None

host platform

Cross-compilation target triple (e.g. "x86_64-unknown-linux-gnu").

Example:


EncoderfileBuilder.from_config(config_path)

Create an EncoderfileBuilder from a YAML configuration file.

The YAML file must have an encoderfile top-level key, containing any of the keywords described in the constructor:

Arguments:

Argument
Type
Description

config_path

str

Path to the YAML build configuration file.

Raises: ValueError if the config is missing required fields or has invalid values. FileNotFoundError if config_path does not exist.


EncoderfileBuilder.build(workdir, version, no_download)

Compile and write the encoderfile binary. Validates all model files, runs optional transform validation, embeds assets into the base binary, and writes the output file.

Arguments:

Argument
Type
Default
Description

workdir

str | None

system temp

Temporary working directory for intermediate build files.

version

str | None

None

Override the encoderfile runtime version to embed. Takes precedence over the version set on the builder.

no_download

bool

False

Disable downloading the base binary. Requires base_binary_path or a cached binary.

Raises: FileNotFoundError if required model files are missing. ValueError if the ONNX model is incompatible or the transform fails validation. RuntimeError if the binary cannot be written.


ModelType

ModelType is a StrEnum — values are plain strings and can be used interchangeably with their string equivalents.

Value
String
Use case

ModelType.Embedding

"embedding"

Feature extraction, clustering

ModelType.SentenceEmbedding

"sentence_embedding"

Semantic search, similarity

ModelType.SequenceClassification

"sequence_classification"

Sentiment analysis, topic classification

ModelType.TokenClassification

"token_classification"

NER, PII detection


TokenizerBuildConfig

Tokenizer padding and truncation settings baked into the binary at build time. Applied at every inference call.

TokenizerBuildConfig(*, pad_strategy, ...)

All arguments are keyword-only. Any argument left as None uses the value from the model's tokenizer_config.json.

Arguments:

Argument
Type
Default
Description

pad_strategy

BatchLongest | Fixed | None

tokenizer default

Padding strategy. BatchLongest() for dynamic per-batch padding; Fixed(n=N) for a fixed sequence length.

truncation_side

str | None

tokenizer default

Side to truncate from: "left" or "right".

truncation_strategy

str | None

tokenizer default

Truncation algorithm: "longest_first", "only_first", or "only_second".

max_length

int | None

tokenizer default

Maximum tokens per sequence. Sequences longer than this are truncated.

stride

int | None

tokenizer default

Token overlap between chunks when splitting long sequences.

Example:


BatchLongest

Pad all sequences in a batch to the length of the longest sequence in that batch. Use as pad_strategy on TokenizerBuildConfig.


Fixed

Pad all sequences to a fixed token length n. Sequences shorter than n are padded; sequences longer than n are truncated (subject to truncation_strategy).

Attribute
Type
Description

n

int

The fixed sequence length in tokens.


TargetSpec

Represents a cross-compilation target platform. Parses a Rust-style target triple string.

Attribute
Type
Description

arch

str

CPU architecture, e.g. "aarch64", "x86_64".

os

str

Operating system, e.g. "apple", "unknown-linux".

abi

str

ABI/environment suffix, e.g. "darwin", "gnu".

Arguments:

Argument
Type
Description

spec

str

A Rust-style target triple such as "aarch64-apple-darwin" or "x86_64-unknown-linux-gnu".


read_metadata(path)

Inspect an encoderfile binary without running inference. Reads the metadata embedded at build time.

Arguments:

Argument
Type
Description

path

str

Filesystem path to a compiled .encoderfile binary.

Returns: An InspectInfo object.

Raises: FileNotFoundError if no file exists at path. ValueError if the file is not a valid encoderfile binary.


InspectInfo

Returned by read_metadata().

Attribute
Type
Description

model_config

ModelConfig

Architecture metadata from the embedded config.json.

encoderfile_config

EncoderfileConfig

Build-time metadata embedded by EncoderfileBuilder.


ModelConfig

Model architecture metadata extracted from the embedded config.json.

Attribute
Type
Description

model_type

str

HuggingFace architecture identifier, e.g. "bert", "distilbert".

num_labels

int | None

Number of output labels for classification models. None for embedding models.

id2label

dict[int, str] | None

Mapping from label index to label string, e.g. {0: "NEGATIVE", 1: "POSITIVE"}.

label2id

dict[str, int] | None

Reverse mapping from label string to index.


EncoderfileConfig

Build-time metadata embedded in the binary.

Attribute
Type
Description

name

str

Model identifier as specified during the build.

version

str

Model version string, e.g. "1.0.0".

model_type

str

Encoderfile model type string.

transform

str | None

Inline Lua post-processing script, or None.

lua_libs

list[str] | None

Additional Lua library paths, or None.


Convenience Functions

build(**kwargs)

A flat-argument convenience wrapper around EncoderfileBuilder. Avoids importing TokenizerBuildConfig, BatchLongest, and Fixed for common use cases. Accepts all the same arguments as EncoderfileBuilder.__new__ plus workdir and no_download, with tokenizer settings flattened into tokenizer_* prefixed arguments.

Extra arguments vs EncoderfileBuilder:

Argument
Type
Default
Description

transform_str

str | None

None

Inline Lua transform. Mutually exclusive with transform_path.

transform_path

str | None

None

Path to a Lua transform file. Mutually exclusive with transform_str.

tokenizer_pad_to

"batch_longest" | int | None

None

Padding strategy: "batch_longest" or a fixed length integer.

tokenizer_truncation_side

str | None

None

Truncation side: "left" or "right".

tokenizer_truncation_strategy

str | None

None

Truncation strategy: "longest_first", "only_first", "only_second".

tokenizer_max_length

int | None

None

Maximum sequence length in tokens.

tokenizer_stride

int | None

None

Token overlap between sequence chunks.

workdir

str | None

system temp

Temporary working directory for the build.

no_download

bool

False

Disable downloading the base binary.


build_from_config(config_path, workdir, no_download)

A convenience wrapper around EncoderfileBuilder.from_config() that loads a YAML config file and calls build() in one step.

Argument
Type
Default
Description

config_path

str

required

Path to the YAML build configuration file.

workdir

str | None

system temp

Temporary working directory for intermediate build files.

no_download

bool

False

Disable downloading the base binary.


Enums

TokenizerTruncationSide

TokenizerTruncationStrategy

These enums are accepted wherever a truncation side or strategy string is expected, but plain strings work equally well.

Last updated