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

Uploaded CPython 3.14Windows x86-64

fabricatio_core-0.10.7-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.10.7-cp314-cp314-manylinux_2_38_aarch64.whl (12.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.38+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

fabricatio_core-0.10.7-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.10.7-cp313-cp313-manylinux_2_38_aarch64.whl (12.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

fabricatio_core-0.10.7-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.10.7-cp312-cp312-manylinux_2_38_aarch64.whl (12.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ ARM64

fabricatio_core-0.10.7-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.10.7-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2d893e566bd547694ef19487267edb60a07ec7958364a901d9e09e8d8e3377ae
MD5 1270afe265aca2a96de9bed9ef6433e2
BLAKE2b-256 afced4851012f80cb01a3f94eb6250621a6d9061f5120426f39d2572c70d106a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp314-cp314-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 eb11d201ca4940b213d4651dabe9225ff9fd5224de442c04ce7656f8ef6a2dd5
MD5 c2fcaa5dae46147dc29d4be199cf570f
BLAKE2b-256 9a0d18318d8b5693a6b815b5f69ab7f766a8a4d851e4c0b66c10f400fd5f19db

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp314-cp314-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 90a8b28636367207adb9d991a3f21ef7815e69dfaf9efffc0fb092666d36ad43
MD5 67aba8b42f2ca27eed36584f123e9c4b
BLAKE2b-256 c8e837eb9dd1f4abec4b752e5c37bbe47120d74b23d2ce35aeb0f1d54fa8991d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50e0b972e0c82751d5f9ba350e74e295a08418d243df5452f6455ed36ae4a9bd
MD5 b88aa6b86d448202dcd784f2369dea95
BLAKE2b-256 f0d11e1361cd799b66345c71501a14678ea43041ecdb2d3fc2a5b85d74df6f37

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1807437dee4ebaad698bb71ba73ae755738cf3f3b0fa000fab927bb0e745d600
MD5 738dbf11cca94a883d4b36f9e9b3a2d8
BLAKE2b-256 0055af8079962bc6fe6a95e6e7e21892d82e781aa0f14942ea541e8ab7ecd6aa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp313-cp313-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 946247fa75e1f3f6b46566e4ec89af190930cc12de624f9bbc5f36dc755d8912
MD5 49cefed7c59b774635e1d556732da811
BLAKE2b-256 979c3aa869ba2619b410e19c9c3f369ce06fa7c40777e0af9ae575488e78900b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp313-cp313-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 92cd58800ffb6bfdef4a5332fd22a47b92094cf0f83c2004637343a0193bdc2c
MD5 f3a0c8e0e9bdf0648dca85001f13dd33
BLAKE2b-256 d5e3949dd99a0d43eb0b0d9beeccd17f8929db022f3d3cf4c72950c2cfdd6b41

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 049f9dbbbbb355d1aae03928afa7ac18839bbf016865f229fb82b05d45cbd2ce
MD5 c769853373dab124f28558f2792303c3
BLAKE2b-256 4f8186c45fdf43fe0c8cb35ae0ba4c8104f0de1c3edfd1a2f3a97dad081a71b4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 02452197e0d1c3b45f090b2e8aa2d8670fca40ddef800ac0c78ae59fc39fdae3
MD5 e19dba94e630dcba7e166ec206d72b14
BLAKE2b-256 5f757e4eb95a17ad437702f93ac0ab9cac8d9843dfe5df6aa404322c776622f9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp312-cp312-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 4cba3846fae0acbd23207c3a46ce2ffba21490920e3d9cef5d417a214b1e2995
MD5 59fb67cadc3d1a03d323f95687d298e8
BLAKE2b-256 eb000ffb8d103f1aab87b9e96ded862c52b163832e07610277da74e8a8224744

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp312-cp312-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 59f7e4228a064551b12091dc32b04524613e9329a027232d5de6b570cdfeab6b
MD5 50138cdb6699bb8862e12501be3cf921
BLAKE2b-256 1cfbf663f422311a19e13f548bd2cb1a07263f7b14fe7b50bda92065bdc7ed41

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.7-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.0 {"installer":{"name":"uv","version":"0.12.0","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.10.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c6c695bd3fc6511a00300cd2fa5c1108a6560df644ed16b0c0370e76e41b22f
MD5 f3266fd057dc7f26a06f16a8c3e7b20d
BLAKE2b-256 5fb3d6b90d99d4f0192f784af44ecb41fbe17be24633fd2267014611c507eeaa

See more details on using hashes here.

Release history Release notifications | RSS feed

0.11.2

12 files

0.11.1

12 files

0.10.10

12 files

This release

0.10.7 This release

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