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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14manylinux: glibc 2.38+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.38+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.38+ ARM64

fabricatio_core-0.10.10-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.10-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 289e2540c325ae29f6ab6e1ada44dde27137f85883f166480143f351f9a30542
MD5 ef01ae80656a6746e1366279f71f5d27
BLAKE2b-256 49a35ed9f23217bed52fabadb26e3e4a44429d8591a48f3d7470dacbc1002924

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp314-cp314-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 f0a1bf83d80f3afad4cf9b5c23536d4038f1bd194a0a104f9b88514712663bd5
MD5 8af0c7034ea47c11bdd58e02d4a79ea8
BLAKE2b-256 ce4a98e1afed25194a34743917c2310d2bad85bc48ed1ec1ea8ec3af91bfef54

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp314-cp314-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 4596dd9944253e606f519c0447353e67f645d1262717ee17de3002c54c9b0c14
MD5 d4b152f21e66153adcadf2c2e5b999cc
BLAKE2b-256 3883085765dd136b35c00e7d85a69f947b899fd8689524d765d5f46b6cc8a6f3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55cc26315a7c9a84ee482d00349750ada207b2e47ff4a9946672e1f6c4bba4f7
MD5 1ac8d461bcc8045a44a9d0457eae21c1
BLAKE2b-256 7e7ca45a9f0fbe5d7e387aaace065f0b282d5c242a62232006149be10cc818d6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ca4dab9a1d80d0441335765968a6f5098bf31d74148f6eea1e9f1426e9977285
MD5 e3dfea65396908487d1047382e826b81
BLAKE2b-256 3bc3042332a916c6e919378e5bf3ff64192c5aa264c56b234bbf8da810aee4be

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp313-cp313-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 74d311b4561612a043d3f31f250e39574362859fa64ab4ee36ac28a4e3b0526f
MD5 86530d5f7a574be5944749462ec0bfc3
BLAKE2b-256 ba9e277fee9f98afd5b8caf5a1ab799153fb23fbb6ffe137fa3b0dae300879de

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp313-cp313-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 d64bf935ff521ea975dab7716f984749a5335833c25453d28d99b111e8c657c0
MD5 d448a720a7f06f1b7bd6291c4e2527ce
BLAKE2b-256 076a81a2dce87282ee6d4bf0848eba513c273d695e20f76675ccace37632b08b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 14cec0fd1dbb888f27139f7b3e1cde6023729f469efd78d8ca81f64f8cdf7894
MD5 a04476c070478289819b9d8674d2f357
BLAKE2b-256 224ae79aced6d0d65c0f650b0f5149ee1e226f3e9a10a9bc4d8d52d849b7ab10

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c2ddc824f95ad076a32ab3ea9b733d36239b9aea8bd9f1a5c69f52e637f8038a
MD5 a7f165a294b1ca177c6a2319149d81ac
BLAKE2b-256 47315c5e5676de261f7ca30c3cd6a7ae890a8a110e946f40767e84b9ff364917

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp312-cp312-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 c8702699a96c5c20b7cc8ce327841635fff265374117b0ed9684c947a0fe4496
MD5 8166cbd22f2902902b095a2144e57bbf
BLAKE2b-256 b4f4f7063c264b5f29ea423d2f0cd171207a523b0bbab86ff901e1641cc1ba11

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp312-cp312-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 fa68c1bb4581bf1ab1530b310912b41a4041ac50f31b9713c1d350078d22cf67
MD5 e049fc67c87d909a3d1b903ac73b213a
BLAKE2b-256 8e4e685f9d1208887752758c2d1caa2ec280346a2687e9918da7068a34c7677f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.10.10-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.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 62dbed7a6a000907c8a572f6730aba94937b233eedeb9eac550ef2725fcc1eb2
MD5 8f6fae24c4e41916442edc1c161ba38b
BLAKE2b-256 27171cc1b4017166977de61046a9377e4a31ad9a7691f7897d72ff2626021fe4

See more details on using hashes here.

Release history Release notifications | RSS feed

0.11.2

12 files

0.11.1

12 files

This release

0.10.10 This release

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