Skip to main content

Bytewise MIME detector

CI: passing License: Apache-2.0 PyPI version

Bytewise is a standalone neural MIME detector trained on raw file bytes. It does not require Java, a Tika server, a filename, or a file extension. The repository preserves its complete research lineage: BFA/BFC baselines, neural experiments, strict-host validation, deduplication audits, and D3 reports.

The default v2 model is a compact Transformer trained on the first 4,096 bytes of a leakage-safe POLAR + GovDocs corpus. It learns 58 MIME classes and exposes 60 supported outputs, including octet-stream fallback and M4V refinement. The original 57-class POLAR full-v3 model remains bundled as the legacy option.

Usage

Homebrew Python is an externally managed environment and must not be modified with pip --break-system-packages. For the command-line application, install Bytewise into an isolated Python 3.12 environment with uv:

uv tool install --python 3.12 "bytewise[metal]"
uv tool update-shell

Open a new terminal (or add $HOME/.local/bin to PATH) and verify it:

bytewise --version
bytewise model-info

Choose the runtime extra for the target platform:

# Apple Silicon GPU
python -m pip install "bytewise[metal]"

# Linux with an NVIDIA GPU and a current NVIDIA driver
python -m pip install "bytewise[cuda]"

# CPU inference on Linux or Windows
python -m pip install "bytewise[inference]"

The metal extra pins the validated TensorFlow 2.18 and tensorflow-metal 1.2 runtime. The cuda extra installs TensorFlow's pip-managed CUDA and cuDNN libraries; the host still needs a compatible NVIDIA driver. Confirm CUDA is visible with:

python -c 'import tensorflow as tf; print(tf.config.list_physical_devices("GPU"))'

For development or library use, keep the dependency in a project environment:

cd "$HOME/git/bytewise"
uv sync --python 3.12 --extra metal --group tests
uv run bytewise model-info
uv run python

Inside that uv run python session:

from bytewise import Detector

detector = Detector.load_default()
result = detector.detect_file("document.bin")

print(result.mime_type)
print(result.confidence)
print(result.alternatives)

The same model is available from the command line:

bytewise detect document.bin image.dat
bytewise detect document.bin --top-k 5 --threshold 0.80 --json
cat unknown.bin | bytewise detect -
bytewise supported
bytewise model-info

Select the immutable original POLAR model when reproducibility requires it:

legacy = Detector.load_default(model="legacy")
bytewise detect --model-version legacy document.bin
bytewise model-info --model-version legacy

Routine TensorFlow startup diagnostics are suppressed so CLI output remains script-friendly. To diagnose device selection or CUDA loading, enable them for one invocation:

bytewise detect --tensorflow-logs document.bin

Allow uncertain inputs to abstain so another detector can handle them:

detector = Detector.load_default(confidence_threshold=0.80)
result = detector.detect_bytes(payload)
if result.abstained:
    # Fall back to tika-python, libmagic, or another detector.
    pass

Production v2 model

The Bytewise 0.3.0 default is polar-govdocs-byte-transformer-seed550-v2:

  • Expanded held-out accuracy: 89.00%
  • Expanded held-out macro F1: 0.801
  • Original POLAR independent-reference accuracy: 94.13%
  • Original POLAR independent-reference macro F1: 0.607
  • Learned labels: 58; supported outputs: 60
  • Model SHA-256: e4bd31dff69c47600369aba720b0eb5ca90398d75541ca05e656ac6fe2795692

See its model card.

Legacy v1 model

The preserved legacy model is polar-byte-transformer-seed550-v1:

  • Validation accuracy: 96.77%
  • Independent-reference accuracy: 94.59%
  • Input: first 4,096 raw bytes
  • Labels: 57 MIME types
  • Model SHA-256: 72a2f5f2dd0fbb4ffaf88488618bc8e034c03876c7cea94d11da23439ed5b849

See the model card and Full-v3 report for the complete evidence.

Repository organization

  • src/bytewise/: production API and migrated byte-frequency research code
  • artifacts/: immutable model release bundle
  • configs/, scripts/: reproducible experiments and evaluation
  • reports/: curated D3 reports from early pilots through Full-v3
  • docs/: research and repository-extraction documentation
  • tests/: standalone production and research regression tests

Dataset bytes, feature caches, databases, raw predictions, and transient logs are intentionally kept outside Git.

Release files for bytewise 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bytewise 0.3.0
File Size Uploaded
bytewise-0.3.0.tar.gz 3.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for bytewise 0.3.0
File Interpreter ABI Platform
bytewise-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 6.0 MB

Release files / bytewise-0.3.0.tar.gz

Download URL bytewise-0.3.0.tar.gz
Size 3.0 MB
Tags Source
SHA-256 checksum
How to use checksums
e449d7ce32e738aa29f2a7554746a52e2e520d5f79cc32df1d81bb6564dfa8d1
BLAKE2b-256 checksum
How to use checksums
ca426e749aef41cfa124158fed5d0145d5e55c27dd4d13e57fcc473cfccebbef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 6, 2026.

Transparency log

Release files / bytewise-0.3.0-py3-none-any.whl

Download URL bytewise-0.3.0-py3-none-any.whl
Size 3.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
2f3dcbbc2a4b21e742bda4501048dcc5afdc9ed1ae30031620fa8cdd84fdd001
BLAKE2b-256 checksum
How to use checksums
eb87e7d18092acc8c59e8f7a0ef0fa864a4b8dbda959fce6bbaa2594a609cd2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 6, 2026.

Transparency log

Release history Release notifications | RSS feed

0.15.0

2 release files

0.14.0

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page