Skip to main content

A LLM multi-agent framework.

Project description

Fabricatio Logo

MIT License Python Versions PyPI Version Ask DeepWiki PyPI Downloads (Week) PyPI Downloads Bindings: PyO3 Build Tool: uv + maturin

Build Package Ruff Lint Tests Coverage Status Documentation Status GitHub Issues GitHub Pull Requests GitHub Stars


Overview

Fabricatio is a streamlined Python library for building LLM applications using an event-based agent structure. It leverages Rust for performance-critical tasks, Handlebars for templating, and PyO3 for Python bindings.

Features

  • Event-Driven Architecture: Robust task management through an EventEmitter pattern.
  • LLM Integration & Templating: Seamlessly interact with large language models and dynamic content generation.
  • Async & Extensible: Fully asynchronous execution with easy extension via custom actions and workflows.

TODO

  • Add api support.
    • Define API types + REST route handlers + wire into axum server
    • Add CORS/error middleware + Python binding for server config
    • Integration tests + API docs
  • Run as mcp server.
    • Feature flag + McpServer struct + tool registry + tools/list
    • stdio + HTTP transports + tools/call dispatch
    • Register Fabricatio tools as MCP tools + Python binding + tests
  • Finalize the webui.
    • Chat interface + API client + WebSocket/SSE streaming
    • Config panel + agent status dashboard
    • Error handling + loading states + UX polish
  • Add Plugin system.
    • Plugin protocol + registry + lifecycle (load/unload)
    • Hook points in core lifecycle + entry-point discovery
    • Plugin config support + validation + tests
  • Replace litellm with native rust impl
    • Port deprecated mock utils to thryd impl
    • Port tests to new mock utils
    • Sync documentations
    • Router cache support ttl and eviction
  • Add worktree-based isolated development subpackage
  • Add level-based context compression subpackage
    • Package skeleton + CompressionLevel enum + compression strategies
    • Async compression + Python bindings + tests
  • TreeSetter-based ACE
    • tree-sitter dep + AST node types + tree edit operations (insert/replace/delete/move)
    • TreeSetter orchestrator + Python bindings + multi-language round-trip tests
  • Self-Extensible Agent
    • Capability protocol + runtime registry + dynamic method injection on Role
    • Config-based discovery + hot-reload + tests
  • Add more examples
  • Write missing examples (Structured Output, Extract, Improve)
  • Document undocumented examples + cross-link use-cases.rst + examples index
  • ToolExecuter exec results feedback to llm
    • Surface errors via ApplicationError + ResultCollector.error() + last_error template param
  • Use stubgen feat and cfg_attr to make the stub generation as an opt-in for all mixed packages.
  • Use Thryd impl to move some requests to rust side
    • All core LLM operations already routed through rust.router_usage
  • Add Texts-based skill system, as a subpackage
    • Skill YAML/JSON schema + loader + directory scanner
    • Wire into Role + validation + example skill file + tests
  • Port build workflow to Justfile
  • thryd::Router use concurrent safe impl
  • Extract Router from fabricatio-core into standalone fabricatio-router crate
  • Replace parser with native rust impl
  • Better memory impl
  • RAG package refactor, move rerank and embedding to thryd
    • Add Reranker support in thryd
    • TEI as Provider in thryd (RerankerModel for OpenAI-compat: wontfix — OpenAI doesn't support rerankers)
    • Wire rerank() into Router Python class + add UseReranker capability
  • Add embedding and rerank mock support to fabricatio-mock
    • Add add_or_update_dummy_embedding_model and add_or_update_dummy_reranker_model to Router
    • Add setup_dummy_embeddings / setup_dummy_reranks + response builders in fabricatio-mock
    • Tests for embedding and rerank mock paths
  • Replace UseLLM with native rust impl
    • Fix the mock utils that is break by the replacement.
    • router support no_cache
  • Diff use Hashline impl instead of StringGrep
    • Integrate rho-hashline crate + hash-based line anchoring in Rust
    • Add compute_hash, format_hashes, parse_hashline_anchor, apply_* functions
  • Add Diff.format_with_hashes() method + Python exports + 22 tests
  • Add high-level HashlineDiff wrapper for hashline API
    • Diff dataclass with anchor and line-number fields
    • from_anchors() and from_line_range() factory methods
    • apply() with line_range and pattern matching modes + tests
  • Placeholder based multiple-agents edits

Installation

# install fabricatio with full capabilities.
pip install fabricatio[full]

# or with uv

uv add fabricatio[full]


# install fabricatio with only rag and rule capabilities.
pip install fabricatio[rag,rule]

# or with uv

uv add fabricatio[rag,rule]

You can download the templates from the github release manually and extract them to the work directory.

curl -L https://github.com/Whth/fabricatio/releases/download/v0.19.1/templates.tar.gz | tar -xz

Or you can use the cli tdown bundled with fabricatio to achieve the same result.

tdown download --verbose -o ./

Note: fabricatio performs template discovery across multiple sources with filename-based identification. Template resolution follows a priority hierarchy where working directory templates override templates located in <ROAMING>/fabricatio/templates.

Usage

Basic Example

"""Example of a simple hello world program using fabricatio."""

from typing import Any

# Import necessary classes from the namespace package.
from fabricatio import Action, Event, Role, Task, WorkFlow, logger


# Create an action.
class Hello(Action):
    """Action that says hello."""

    output_key: str = "task_output"

    async def _execute(self, **_) -> Any:
        ret = "Hello fabricatio!"
        logger.info("executing talk action")
        return ret


# Create the role and register the workflow.
(Role()
 .subscribe(Event.quick_instantiate("talk"), WorkFlow(name="talk", steps=(Hello,)))
 .dispatch())

# Make a task and delegate it to the workflow registered above.
assert Task(name="say hello").delegate_blocking("talk") == "Hello fabricatio!"

Examples

For various usage scenarios, refer to the following examples:

  • Simple Chat
  • Structured Output
  • Extraction
  • Content Improvement
  • Retrieval-Augmented Generation (RAG)
  • Article Extraction
  • Propose Task
  • Code Review
  • Write Outline

(For full example details, see Examples)

Configuration

Fabricatio supports flexible configuration through multiple sources, with the following priority order: Call Arguments > ./.env > Environment Variables > ./fabricatio.toml > ./pyproject.toml > <ROMANING>/fabricatio/fabricatio.toml > Builtin Defaults.

Below is a unified view of the same configuration expressed in different formats:

Environment variables or dotenv file

FABRICATIO_LLM__SEND_TO=openai/gpt-3.5-turbo
FABRICATIO_LLM__TEMPERATURE=1.0
FABRICATIO_LLM__TOP_P=0.35
FABRICATIO_LLM__STREAM=false
FABRICATIO_LLM__MAX_COMPLETION_TOKENS=8192
FABRICATIO_DEBUG__LOG_LEVEL=INFO

fabricatio.toml file

[debug]
log_level = "DEBUG"


[llm]
send_to = "base" # send req to `base` group by default
max_completion_tokens = 32000
stream = false
temperature = 1.0
top_p = 0.35


[routing]
providers = [
    { ptype = "OpenAICompatible", key = "sk-...", name = "mm", base_url = "https://api.example.com/v1/" }
]

completion_deployments = [
    { id = "mm/a-completion-model", group = 'base', tpm = 100_000, rpm = 1000 }
]
cache_database_path = "path/to/.cache.db"

pyproject.toml file

[tool.fabricatio.debug]
log_level = "DEBUG"


[tool.fabricatio.llm]
send_to = "base" # send req to `base` group by default
max_completion_tokens = 32000
stream = false
temperature = 1.0
top_p = 0.35


[tool.fabricatio.routing]
providers = [
    { ptype = "OpenAICompatible", key = "sk-...", name = "mm", base_url = "https://api.example.com/v1/" }
]

completion_deployments = [
    { id = "mm/a-completion-model", group = 'base', tpm = 100_000, rpm = 1000 }
]
cache_database_path = "path/to/.cache.db"

Contributing

We welcome contributions from everyone! Before contributing, please read our Contributing Guide and Code of Conduct.

License

Fabricatio is licensed under the MIT License. See LICENSE for details.

Acknowledgments

Special thanks to the contributors and maintainers of:

Project details


Release history Release notifications | RSS feed

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

Uploaded CPython 3.14Windows x86-64

fabricatio-0.30.2-cp314-cp314-manylinux_2_34_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

fabricatio-0.30.2-cp314-cp314-manylinux_2_34_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

fabricatio-0.30.2-cp314-cp314-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

fabricatio-0.30.2-cp313-cp313-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.13Windows x86-64

fabricatio-0.30.2-cp313-cp313-manylinux_2_34_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

fabricatio-0.30.2-cp313-cp313-manylinux_2_34_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

fabricatio-0.30.2-cp313-cp313-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fabricatio-0.30.2-cp312-cp312-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.12Windows x86-64

fabricatio-0.30.2-cp312-cp312-manylinux_2_34_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

fabricatio-0.30.2-cp312-cp312-manylinux_2_34_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

fabricatio-0.30.2-cp312-cp312-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file fabricatio-0.30.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 aa961495457edfb81d922625820f80b470858d0e1b9b74c9b3f6ef2e29d9e020
MD5 6d9515dea2c117f0165a9440da06c004
BLAKE2b-256 42949cd32016542a366a2a2d570c94778f7bcbc564d866619c80a1b1f6774e88

See more details on using hashes here.

File details

Details for the file fabricatio-0.30.2-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp314-cp314-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: CPython 3.14, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d0cc65020a492a49e6e7fca064293975223dd6890ea2f18f0089f8c0833c546d
MD5 6cd183658822fbe55c11788d3623f6d8
BLAKE2b-256 035f32f719411ae348e313be38a7d4d2265712367703231c7fee245e4bc64e70

See more details on using hashes here.

File details

Details for the file fabricatio-0.30.2-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp314-cp314-manylinux_2_34_aarch64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.14, manylinux: glibc 2.34+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 c415bcf3125566276d3388b6b06a1351bdcbd1d7a83f6e7a08d72e0daebdd100
MD5 634f097a7de642cef4d99a4c0c9618a6
BLAKE2b-256 773d9d10af3a728b61c9586aaf00e40b30ee0e5f9c8772a6ea59647e2e89092c

See more details on using hashes here.

File details

Details for the file fabricatio-0.30.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.14, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4082906559a02a38a8c24877ba57621fa4a89314ab83f4e81cf4f2e4b13077f
MD5 af45887c3a05212146f3825de01e6788
BLAKE2b-256 5d5b36b5894889f1c6dbf34a67a0ef1325f5b0c517cbaaee7e620926cb696c3b

See more details on using hashes here.

File details

Details for the file fabricatio-0.30.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0045d36f04b1ea08fa7405dc2d78cf8cb1545dfaa4f3c6fb4eb8ae9a9106acd6
MD5 23fa54d3b56ae1eebc56decee1227b15
BLAKE2b-256 d77e154f271ae5f3a18bffc007aee00ecf29e16b2516cdcf77afc91bb1f30b79

See more details on using hashes here.

File details

Details for the file fabricatio-0.30.2-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp313-cp313-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c55e846d55749ae9004d6dd5430e1c1d5cb0cfc8493c4ee6d9f05c632f87bfa1
MD5 0259202e602035e3838eef2990d42ad2
BLAKE2b-256 8334feb2475909c7655f5cc9fa65a4648203fd861935cf10162c4c68ae75b1f1

See more details on using hashes here.

File details

Details for the file fabricatio-0.30.2-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp313-cp313-manylinux_2_34_aarch64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.13, manylinux: glibc 2.34+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 eaa30ab75630347532d697e85ddd5b05489206f1cdad7e15cf657217479d9dd0
MD5 32058664ce497e4c15c169260b63ae9f
BLAKE2b-256 b9412b5791e539d55362708b8509d417357845f220ca7e23a5bc0560571fd160

See more details on using hashes here.

File details

Details for the file fabricatio-0.30.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3fca1b496f36ace3f5b2357b10493bd936c3fb608e4fde34c94ba947bee491a7
MD5 a6971c3ba16a57c28d9aa1194da689df
BLAKE2b-256 f152009175ab366b1815ead77fe54bce12c796ca22552412b7adbf03f727ad26

See more details on using hashes here.

File details

Details for the file fabricatio-0.30.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c38e5f65be1a7210c8c946fe76a5466f5eaadfa0e2296e5cfe2541e239e4f9e8
MD5 2767ebc921c1d032e4d748b4e22db200
BLAKE2b-256 c10c7bd394c6d52cd737c5930c6a11bcdf3abeffe179f9f0e675ab335e3d24b1

See more details on using hashes here.

File details

Details for the file fabricatio-0.30.2-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp312-cp312-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 680e39c678f6f1665769c08fcce91b4eebad540e64129f695155e4dd78efd0a2
MD5 1c51271b857f5a1f8eb503a25308f7c0
BLAKE2b-256 9546a8e08b9dc2d76e6bf059201f0589d6b8a9cefa217f701a6cafb224b95f93

See more details on using hashes here.

File details

Details for the file fabricatio-0.30.2-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp312-cp312-manylinux_2_34_aarch64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.12, manylinux: glibc 2.34+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 bdb38803f20ace30bddbe7441fd06cb8920a5bc07ce96aaa5e3829468269ffb8
MD5 0d416a3697fe7970f8518e2ed75c0171
BLAKE2b-256 cf45c4480e1d9b6a3c83af6bf16c68c4ea5e11182357f39625d5f1a219b70be9

See more details on using hashes here.

File details

Details for the file fabricatio-0.30.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio-0.30.2-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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-0.30.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 652797e314d9b0297bbcfca921b139291a13c4c8faf378af51e7363ae99b262b
MD5 56a73064c2d6f7079e5ba97a85e7edc1
BLAKE2b-256 4ea09bb53b2be475f7aa564221091d02c7d1f88fa921a0be1d686c4899c7cc43

See more details on using hashes here.

Supported by

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