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

Uploaded CPython 3.14Windows x86-64

fabricatio_core-0.11.3-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.3-cp314-cp314-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.38+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

fabricatio_core-0.11.3-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.3-cp313-cp313-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

fabricatio_core-0.11.3-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.3-cp312-cp312-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ ARM64

fabricatio_core-0.11.3-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.3-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 926105e789f243e250ea513f6cb676093ec5bd7701e308f062911888d23eefa1
MD5 919ff7ac66bd219fc8fdecebf4fe30c9
BLAKE2b-256 4ce057d9ff59f81c795ffe9ce41c0588dbb387f33c95000a19d2a84de6975039

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp314-cp314-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 31bb4be825744f2a7bd145bc57b8630aab48c87c18e42f2eebfb7553a4e14db3
MD5 84e791615d9460f1709092ac241f0773
BLAKE2b-256 7049166c2a3de5c8669a38cc5886179c98e22f56346be452ef31b0094006d46f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp314-cp314-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 b667ff8970c86beb4e87c1bfa25e205cd1374e8b28cfe4adba777eb7a2ee42e8
MD5 92e02410190686c747e72cdbc4444902
BLAKE2b-256 8d13f547dba0b054382206dc4a9e36c6e024630b4fb67434543c4da8013a94f9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2401798b2e618a968873243539209d9520b5d85366b07388fb641c26be11b245
MD5 d7ba1a632ccc5da2a940322c612aed13
BLAKE2b-256 8065c02c1274e182ea7e901bccea73af581689e93d6705e432824fe1c8ae5fcc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9183b7835dc7a185db1271a026dbc446533061ddba22ef656b8ecd56b21e99eb
MD5 ade45c6933c3449730e93d52a2ad0f90
BLAKE2b-256 44cd835e132b802c6463c61277baa1140dfb98e82cd55f9e948e287e6bec3804

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp313-cp313-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 59a1ce20f90dbefbfce9db78f9b927cb862f8ee5ebd2b53e116136fd1fe0ce32
MD5 40423684373593a81582f3cbe5ceaa49
BLAKE2b-256 c2e34de770dffa248c5674d6b87505d5a1ea5cc77e8392b1333bf651ba5ddf23

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp313-cp313-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 7a2b921fb945ec1ee2ec3dd1ab7310f2369c2d057bff4dbe67e08f99d4c2c67a
MD5 2f27efabd888d114bb4a919a6baf358d
BLAKE2b-256 29043e5a44a5164656bf93d9d9ef9be0fabaf30a7366974830daf31badf24cfb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a69400c40da6573440842e0c9d9c255f927cbd4d56b1a455cb223551ceca023
MD5 cb7e9761eeed2caf8ca7af5c589a1516
BLAKE2b-256 0f9347b8faaa7c82b278259cf836aa9f747becd6256f2f5bbc91a97c363c89a0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c833ef31220305b7547576ad2b393ff9ecf7753c5ca4fb1607b4761744c90f84
MD5 3f7bf9ef0ef6c4864dfd04ebad027f86
BLAKE2b-256 4a423ea2a5dd2c9ed0dece8d32c92655a280181dd6513f3236c4a663a4e6d948

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp312-cp312-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 66c0c536a116f2d75995ac20994697d90fca78e833b014c21a591062fabd2601
MD5 0550b87cbf94288ab1146081d37d153d
BLAKE2b-256 afd59ac504137dd1de8b9a6bc5509d34fa31f6d15e6d0759dcb0d825b8074b51

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp312-cp312-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 9f58619768b638ce5e8401092a213c97d1ff7e19145b23ed84f9afb52e57acb9
MD5 76fdc0f2d7b26c2ba0167fa7838f02c4
BLAKE2b-256 771920a9576ac018f7472b4a1bcece18690671253dce5e6a70c6448359323b28

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.11.3-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.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81e9cf14c6671306548bfa0552a8dc3a46faf5a02b2826aba17b297943b21f53
MD5 ffb1d1bedd0ac1e481dbfc8fbd61d905
BLAKE2b-256 8edb8e5ce83f9620efb7565478ddc87bd96a367fb7fc019db700095091bb6d04

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.11.3 This release

12 files

0.11.2

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