Mardiros’ Personal Projects¶
Hey, I’m Mardiros, and I’m a programmer. I mainly work with Python, but occasionally I use Rust.
I also combine both languages using PyO3.
Below is a curated list of personal projects that I am actively developing, maintaining or still using.
All those projects are opensource and code is available at Github. Python libraries are also published on PyPI.
Python Libraries¶
Fastlife¶
fastlife is an asynchronous web framework built on FastAPI, HTMX, and JinjaX. The goal is to facilitate rapid web application development.
The documentation is available at: https://mardiros.github.io/fastlife/.
The project is currently in development; I plan to replace JinjaX by XComponent, the next library on the list.
XComponent¶
XComponent is a template engine inspired by JSX for Python.
The core of the template engine is written in Rust using PyO3 bindings.
This template engine’s API differs from existing ones because all templates are written within Python functions. There is no separate template file.
The documentation is available at: https://mardiros.github.io/xcomponent/.
messagebus¶
messagebus is a library for constructing an event-driven architecture in Python. It supports both synchronous and asynchronous code based on asyncio.
The documentation is available at: https://mardiros.github.io/messagebus/.
Turşu¶
turşu is a Gherkin framework for Python.
It compiles Gherkin scenarios into a pytest test suite using the Python AST.
It allows the use of pytest fixtures within step definitions.
The documentation is available at: https://mardiros.github.io/tursu/.
Blacksmith¶
blacksmith is a library for building robust microservices architecture based on REST APIs in Python. It supports both synchronous and asynchronous code based on asyncio.
It is not an HTTP client; rather, it includes features like service discovery, metrics, circuit breakers, and more.
The documentation is available at: https://mardiros.github.io/blacksmith/.
The project is stable and mature.
Some web framework integrations exist as extra packages:
Purgatory¶
purgatory is a circuit breaker implementation for Python. It supports both synchronous and asynchronous code based on asyncio.
The documentation is available at: https://mardiros.github.io/purgatory/.
The project is stable and mature.
lastuuid¶
lastuuid is a small library to generate UUIDv7 that works with Pydantic.
The project does not implement UUIDv7 itself; it is a binding to UUIDv7 in Rust using PyO3.
envsub¶
envsub is a library to substitute environment variables on the fly while reading a file stream.
It has been implemented in Rust and binds with PyO3 to run blazingly fast.
The documentation is available at: https://mardiros.github.io/envsub/.
plaster-yaml¶
plaster-yaml is a library to configure a Pyramid app using YAML (or JSON) format instead of .ini files.
It also uses envsub to inject secrets or any other settings on the fly while reading the configuration, maximizing flexibility and keeping the loaded Python object as a single source of truth for the configuration.
celery-yaml¶
celery-yaml is a library to configure a Celery app using a YAML file instead of a Python module.
It also uses envsub to inject secrets or any other settings on the fly while reading the configuration, maximizing flexibility and keeping the loaded Python object as a single source of truth for the configuration.
Pydantricks¶
Pydantricks is a library to build fake Pydantic models. It uses Faker under the hood to ensure clean fake models.
The documentation is available at: https://mardiros.github.io/pydantricks/.
Rust Libraries and Tools¶
Rustaman¶
rustaman is an HTTP client template designed for everyday queries.
It’s similar to Postman but not designed as a clickodrome. HTTP queries are templatized with Mustache.
Cabot¶
cabot is an HTTP CLI client similar to curl.
This lib is not actively maintained.
Bearer¶
bearer is an OAuth2 authorization token made for CLI.
This lib is not actively maintained too.