Skip to main content

fabricatio-core

MIT Python Versions PyPI Version PyPI Downloads PyPI Downloads Build Tool: uv

Foundational Python library for building LLM-driven applications using an event-based agent architecture. Built on a hybrid Rust/Python foundation for performance-critical operations.

Requires Python 3.12+.

Installation

pip install fabricatio
# or
uv pip install fabricatio

For all optional extras:

pip install fabricatio[full]

Key Components

Event System (Event, EventEmitter)

Segmented event type with task-status lifecycle methods (push_running, push_finished, etc.) and glob-wildcard (*) matching. The global EventEmitter dispatches events asynchronously with on/off/emit.

from fabricatio_core.emitter import EMITTER
from fabricatio_core.rust import Event

EMITTER.on("task::*::finished", my_handler)

LLM Routing (Router, RouterUsage)

Multi-provider router for completion, embedding, and reranking. RouterUsage provides structured LLM interaction patterns — ask, list strings, code generation, judging, choosing — with configurable validation and fallback defaults.

from fabricatio_core.rust import ROUTER, router_usage

response = await ROUTER.completion(send_to="default", message="Hello")
result = await router_usage.choosing("Pick two items", valid_names=["a", "b", "c"], k=2)

Task Model (Task)

Pydantic-based task with lifecycle status management (Pending, Running, Finished, Failed, Cancelled), dependency tracking, structured proposal generation from prompts, and automatic event emission on state transitions.

task = Task(name="data_ingestion", description="Ingest raw data")
task.start()
# ... execute ...
task.finish(output={"rows": 1042})

Workflow Engine (Action, WorkFlow)

Abstract action pipeline with shared context propagation. WorkFlow orchestrates sequences of Action instances, managing input/output keys, error handling, and task lifecycle.

class ParseData(Action):
    async def _execute(self, **cxt):
        return parse(cxt["task_input"])

wf = WorkFlow(actions=[ParseData().to_task_output()], name="parse_pipeline")
await wf.execute(task)

Role Framework (Role)

Agent roles map event patterns to workflows. Global registry supports register_role / get_registered_role. Roles dispatch workflows automatically when matching events are emitted.

from fabricatio_core.models.role import Role, register_role

analyst = Role(name="analyst", description="Data analysis agent")
analyst.deploy_on("data::ingested", parse_wf)
register_role(analyst)

Template Rendering (TemplateManager)

Handlebars-based template engine. Load templates from directories, render with structured data.

from fabricatio_core.rust import TEMPLATE_MANAGER

TEMPLATE_MANAGER.add_store("./templates").discover_templates()
output = TEMPLATE_MANAGER.render_template("greeting", {"name": "World"})

Capability Mixins (UseLLM, UseEmbedding, UseReranker, Propose)

Inheritable classes that add LLM querying, embedding generation, reranking, and structured proposal capabilities to any model. All integrate with the Router for provider dispatch.

class MyAgent(UseLLM, UseEmbedding, Propose, WithBriefing):
    pass

agent = MyAgent(name="helper")
answer = await agent.aask(question="What is 2+2?")
obj = await agent.propose(MyModel, prompt="Create a config object")

Text Parsing & Language Utilities (Rust)

Fast Rust-backed functions for text processing:

  • split_sentence_bounds / split_word_bounds — Unicode-aware text splitting
  • split_into_chunks — chunk text with configurable overlap
  • tokens_of / word_count — token and word counting
  • blake3_hash — BLAKE3 content hashing
  • detect_language — language detection
  • is_english, is_chinese, is_japanese, etc. — language checks
  • is_likely_text — file content type detection
  • CodeSnippetParser, CodeBlockParser, GenericBlockParser, JsonParser — structured block extraction from LLM outputs

Base Model Hierarchy (models.generic)

Pydantic-based abstract base classes for consistent model design: Named, Described, WithBriefing, WithDependency, ScopedConfig (with hierarchical fallback), ProposedAble, InstantiateFromString, Display, and more.

Decorators

  • cfg_on / cfg_on_async — feature-gated function execution
  • depend_on_external_cmd — check external binary availability
  • logging_execution_info / logging_exec_time — execution logging
  • once — ensure single invocation

Configuration (Config)

Structured configuration with sub-sections for LLM, embedding, reranking, emitter, routing, templates, debug, and deployment settings. Accessible via fabricatio_core.rust.CONFIG.

Package Structure

fabricatio-core/
├── python/fabricatio_core/
│   ├── capabilities/      - LLM, embedding, reranker, and proposal mixins
│   ├── models/            - Action, Role, Task, generic base models, kwargs types
│   ├── rust/              - PyO3 Rust extension (autogenerated stubs)
│   ├── decorators.py      - cfg_on, once, logging_exec_time, etc.
│   ├── emitter.py         - EventEmitter with wildcard pattern matching
│   ├── journal.py         - Logger bridge to Rust logger
│   ├── utils.py           - ok, cfg, override_kwargs, first_available, etc.
│   └── __init__.py        - Public API surface
├── src/                   - Rust sources (parser, templates, event, language, etc.)
└── pyproject.toml

License

MIT — see LICENSE

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fabricatio_core-0.11.1-cp314-cp314-win_amd64.whl (12.5 MB view details)

Uploaded CPython 3.14Windows x86-64

fabricatio_core-0.11.1-cp314-cp314-manylinux_2_38_x86_64.whl (13.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.38+ x86-64

fabricatio_core-0.11.1-cp314-cp314-manylinux_2_38_aarch64.whl (12.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.38+ ARM64

fabricatio_core-0.11.1-cp314-cp314-macosx_11_0_arm64.whl (12.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

fabricatio_core-0.11.1-cp313-cp313-win_amd64.whl (12.5 MB view details)

Uploaded CPython 3.13Windows x86-64

fabricatio_core-0.11.1-cp313-cp313-manylinux_2_38_x86_64.whl (13.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ x86-64

fabricatio_core-0.11.1-cp313-cp313-manylinux_2_38_aarch64.whl (12.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ ARM64

fabricatio_core-0.11.1-cp313-cp313-macosx_11_0_arm64.whl (12.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fabricatio_core-0.11.1-cp312-cp312-win_amd64.whl (12.5 MB view details)

Uploaded CPython 3.12Windows x86-64

fabricatio_core-0.11.1-cp312-cp312-manylinux_2_38_x86_64.whl (13.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ x86-64

fabricatio_core-0.11.1-cp312-cp312-manylinux_2_38_aarch64.whl (12.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ ARM64

fabricatio_core-0.11.1-cp312-cp312-macosx_11_0_arm64.whl (12.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file fabricatio_core-0.11.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 12.5 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3f57010ebb9ce5968a1359b9407d1df040759b38a7e4d14a4646643467bcdfa0
MD5 7842fb68d9106c8899e7a7a9c8a749fb
BLAKE2b-256 1684299aa7022cc2ea6fd3a30636d91c66b336af2c71d77f6bc8a17de141cb00

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.11.1-cp314-cp314-manylinux_2_38_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp314-cp314-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 13.4 MB
  • Tags: CPython 3.14, manylinux: glibc 2.38+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp314-cp314-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 a07fc8b1fa852c9ae4102856ccbc8cfabb837b8014d73e448417781f76b39e6f
MD5 0de5a1e28997d3ec87577d608f0a9159
BLAKE2b-256 16e6caa8a09664af7075ed4f956b48f5f078b0074bd75413b11e66040eb728f7

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.11.1-cp314-cp314-manylinux_2_38_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp314-cp314-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 12.2 MB
  • Tags: CPython 3.14, manylinux: glibc 2.38+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp314-cp314-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 ac069feef1b1ac3c223a8c04df55cf93e036154dfa66dc68b05f53891735d4bf
MD5 70f7ece56b5b4d537669ad84bedfe3a8
BLAKE2b-256 a1a73887b684e42cb31e269ee18055dbe77c522dc68e9aef02fc979e6a08c142

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.11.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 12.4 MB
  • Tags: CPython 3.14, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a229cf3467e29bc60c65bcc957e4743c9eff2f8bafced0c7679dc756061b8bd0
MD5 b77b56c607981ec5afe5ba9b2174e888
BLAKE2b-256 f5668d733937eb39d47cb4cb4229b2c6d3f394f1ff6c5a52cf60b08f1a5ca3c4

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.11.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 12.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c5b3d66573f0cd2c84887f559bb963d5c5aeac68a2770ffd49e42300548b0409
MD5 33ce01184eb0fc2281dc546cdfa7652a
BLAKE2b-256 854ee376836565c349beff113784cf54e4e87dcc053f1d193a0201142584f1ac

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.11.1-cp313-cp313-manylinux_2_38_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp313-cp313-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 13.4 MB
  • Tags: CPython 3.13, manylinux: glibc 2.38+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp313-cp313-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 3ee9c98ffe2bd7fc7062b7c99a395e451e482727a2bf2610fa8080e0a9ba39a6
MD5 bfb4dae1deadd9354cfb9fb6d4b2e1b0
BLAKE2b-256 797b597d3e5147c3c0df20da305424110349de064d1bdbcd8a8c5c7482555cd4

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.11.1-cp313-cp313-manylinux_2_38_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp313-cp313-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 12.2 MB
  • Tags: CPython 3.13, manylinux: glibc 2.38+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp313-cp313-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 f9499f416bd6de16f9614c60f6fd115dd4508f5c74cf2ce30d1dda0c9e74d0c5
MD5 a0661267fa6e2a7dea642fba20c0d72f
BLAKE2b-256 9b48f17d01567d7e0666986ec0471104e10efcc867946173bbe826b4f77e9f2e

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.11.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 12.4 MB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f55ac48423cdead94646b95171becfa75e654c05e8ce3b2318dea02def16c8d5
MD5 5b2ec6948f5a99dd0331f8700d916423
BLAKE2b-256 a7d2ff168057ea201d80dbe93daf9d41be799575895c4bf0c23275f58e227713

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.11.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 12.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d49a4ed41df1d49946cd091f4ee377fcf5c702fe6613264475c633455ac32aaa
MD5 0232c6fced090444c9a6b681e0a46927
BLAKE2b-256 d8f39a2660563603df3b3b99d94f059e948bdd59c49620ee39d4cb2c3cbe8d10

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.11.1-cp312-cp312-manylinux_2_38_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp312-cp312-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 13.4 MB
  • Tags: CPython 3.12, manylinux: glibc 2.38+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp312-cp312-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 92b6dc204d6990f24cd74f83bd19022edbfba714331780c745c2bfb3ab792c7b
MD5 3737287f3e0997542eb54bb0ae00e61c
BLAKE2b-256 cff54901ea48218a50a4c76e623aa8950021984354297ba38314496931472bdb

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.11.1-cp312-cp312-manylinux_2_38_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp312-cp312-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 12.2 MB
  • Tags: CPython 3.12, manylinux: glibc 2.38+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp312-cp312-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 6c2c635b48b8ffa827f0b9f25391bb7634c1b43a967c972ffed0cabbaa3cbcd9
MD5 27f8eb9dd82567b4d7bcafe06c03ae54
BLAKE2b-256 db3759bf2bc0de47d7203ccb307d0ba3472647af836864eb27605fa439c29aa9

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.11.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.1-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 12.4 MB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.11.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b2a360c878dec03487bbcc72295225718ef8bf73824d5f5b87f15b38e1856d95
MD5 95ca0086c479766e24883eae6c5cfc8a
BLAKE2b-256 5ab3622c93b928c9daa23badd1cf5ca905e8cdbc7d9cc80ba5db1a07cb747275

See more details on using hashes here.

Release history Release notifications | RSS feed

0.11.2

12 files

This release

0.11.1 This release

12 files

0.10.10

12 files

0.10.7

12 files

0.10.5

12 files

0.10.3

12 files

0.10.1

12 files

0.9.1

12 files

0.9.0

12 files

0.8.10

12 files

0.8.8

12 files

0.8.7

12 files

0.8.6

12 files

0.8.5

12 files

0.8.4

12 files

0.8.3

12 files

0.8.2

12 files

0.8.1

12 files

0.7.2

12 files

0.7.1

12 files

0.7.0

12 files

0.6.7

12 files

0.6.6

12 files

0.6.4

12 files

0.6.3

12 files

0.6.2

12 files

0.6.1

12 files

0.6.0

12 files

0.5.3

12 files

0.5.2

12 files

0.5.0

12 files

0.4.5

12 files

0.4.4

12 files

0.4.3

12 files

0.4.0

12 files

0.3.34

12 files

0.3.33

12 files

0.3.32

8 files

0.3.31

8 files

0.3.30

8 files

0.3.29

8 files

0.3.28

8 files

0.3.27

8 files

0.3.26

8 files

0.3.25

8 files

0.3.24

8 files

0.3.21

8 files

0.3.19

8 files

0.3.18

8 files

0.3.17

8 files

0.3.16

8 files

0.3.15

8 files

0.3.14

8 files

0.3.13

8 files

0.3.12

8 files

0.3.11

8 files

0.3.10

8 files

0.3.9

8 files

0.3.7

8 files

0.3.6

8 files

0.3.5

8 files

0.3.4

4 files

0.3.3

4 files

0.3.2

4 files

0.3.1

4 files

0.3.0

3 files

0.1.11

3 files

0.1.10

3 files

0.1.9

3 files

0.1.8

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.2

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page