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.2-cp314-cp314-win_amd64.whl (11.6 MB view details)

Uploaded CPython 3.14Windows x86-64

fabricatio_core-0.11.2-cp314-cp314-manylinux_2_38_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.38+ x86-64

fabricatio_core-0.11.2-cp314-cp314-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.38+ ARM64

fabricatio_core-0.11.2-cp314-cp314-macosx_11_0_arm64.whl (11.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

fabricatio_core-0.11.2-cp313-cp313-win_amd64.whl (11.6 MB view details)

Uploaded CPython 3.13Windows x86-64

fabricatio_core-0.11.2-cp313-cp313-manylinux_2_38_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ x86-64

fabricatio_core-0.11.2-cp313-cp313-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ ARM64

fabricatio_core-0.11.2-cp313-cp313-macosx_11_0_arm64.whl (11.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fabricatio_core-0.11.2-cp312-cp312-win_amd64.whl (11.6 MB view details)

Uploaded CPython 3.12Windows x86-64

fabricatio_core-0.11.2-cp312-cp312-manylinux_2_38_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ x86-64

fabricatio_core-0.11.2-cp312-cp312-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ ARM64

fabricatio_core-0.11.2-cp312-cp312-macosx_11_0_arm64.whl (11.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 11.6 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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 64fd3dc59a8533e112b5264bddc74c27dbb8389f6afdcd0aa13bc5852bf447d9
MD5 2bbdaa0127fe14fead099a3d83ea257c
BLAKE2b-256 e71c34682f248d29c7faf078abb254975e3fb584939bb81d201bbbb442becd55

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp314-cp314-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 12.6 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.2-cp314-cp314-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 20856ba616c81bb0b4f6881662fb24bf85a507877b663786b959ffb3ae68ab45
MD5 1a809a9056fd3813c7c77fba2cea78bb
BLAKE2b-256 782aec292e0a520b09b5e16f23788e21982c6118cb0f77f443261c8db4773a54

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp314-cp314-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 11.4 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.2-cp314-cp314-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 b812964f2da3fca7761c852f4fbcf522d6b03d5ddccf40fea39bc965bb29709e
MD5 b14ee28383274fa3edfa026fdb01f920
BLAKE2b-256 219e147ed0aff32d38184143c296ace2eb5bf7dc7c5dcd4a0b47fbc3c01c3606

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 11.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.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56eaadfd750d63666bf975b512157ec8b36ea945c2f14f569571f0657beb8226
MD5 ff3fa19133d29339b5430f133310aac0
BLAKE2b-256 bbd39d2c65a21431840475b830d9fa39b0d6e850fdfb46d9719459e82fac15cf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 11.6 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 50e95f49fd01eca6d40efef84478c5cff150ae7524f63f467c178b521ada04a4
MD5 2e48ce39baa9aa0922ce79fe0f3f80b1
BLAKE2b-256 9e99a32a8ae5a4047612eae2d97d767290cd3744a235665df08babd426db08ae

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp313-cp313-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 12.6 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.2-cp313-cp313-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 b24749838c92f7422f7fc5a1a9f605177caae421537cf52a031d26fa794aeb76
MD5 53a805524e3d637b5be02ef4f14c27ad
BLAKE2b-256 e654f07f5f749a9a0cc813c03c4d6fee98cfeaee8c159835ab8e07c6aba80761

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp313-cp313-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 11.4 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.2-cp313-cp313-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 57e912a9754e421bd8b2a8ce1862cf080ba9f935f77e12b978cc273b76651a74
MD5 1acdf51806547862abb319e97639c520
BLAKE2b-256 b1cc869ebb78830a980043da9d9dd891d962a30270a783d6f67ec3f22290dead

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 11.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.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4da26c849159985811f6950f7f75912fa505d5e21e26b7edace17dcb07bda700
MD5 d980e2cad79b4d811d3bae655cd8dee1
BLAKE2b-256 b615062d7bcd5ab6d928f7c7b1a8fecae93e07828cd2a0ad96aa39d0ab36c292

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 11.6 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 06ffb9dfb28678a0a7dc4d63b4f48367e4b797c327ad3eb95c5b505fda2885ae
MD5 2e442b73c3e5f42c7b764686862b6651
BLAKE2b-256 347ac3ce9da10189ef649c163f14a4d9131591bbaf206763d0bcaa95d1f69346

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp312-cp312-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 12.6 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.2-cp312-cp312-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 e333af216d426e8b58e59db8bb0489fb3170dabc37d045f5a344e804001873c7
MD5 a7ce144dd70b0d2591c29530ddaac330
BLAKE2b-256 2bc7bfe33aa12fe6cca953acfb2031adbf56b448b5c441bc5f2964ca6c15e683

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp312-cp312-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 11.4 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.2-cp312-cp312-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 cb96f96d0b9cae8475ab9195a512eecc0c68736a0eb4e46648f942eff5eb4a37
MD5 25a8b250648ef91dbaeb20fe2e9fba49
BLAKE2b-256 bb973559696b1f1e027285d090a5137704153e041ce1a96c1d8da5332c4d7644

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.2-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 11.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.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5e79fe1c22e0c70a344c5fd0b999273e555f964e3864d2c4d93519772a91e3f
MD5 fc4b0ac31bfd187ad935f7b3c6565c55
BLAKE2b-256 bf3cd495e7117a78fc9fe1fc6bcf5cf72bf10ab09f62d49542eecc8e7f7f6ab8

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.11.2 This release

12 files

0.11.1

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