• Stars
    star
    352
  • Rank 120,622 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tooling support for the Polylith Architecture in Python.

✨ Python tools for the Polylith Architecture ✨

A repo containing tooling support for the Polylith Architecture in Python.

DavidVujic

CodeScene Code Health

Quality Gate Status

Download Stats

What's Polylith? πŸ€”

Polylith is an architecture (with tooling support) originally built for Clojure. The code in this repo brings Polylith to Python.

From the official Polylith Architecture docs:

... Polylith is a software architecture that applies functional thinking at the system scale. It helps us build simple, maintainable, testable, and scalable backend systems. ...

Polylith is using a components-first architecture. Similar to LEGO, components are building blocks. A component can be shared across apps, serverless functions and microservices.

Documentation πŸ“š

Have a look at the Python-specific documentation. You will find installation, setup, usage guides and more.

Polylith for Python? 🐍

This repo contains a Poetry plugin, that you can install from PyPI. The plugin will add Polylith specific tooling support to Poetry. Have a look in the Poetry Polylith Plugin project folder with details about the Poetry plugin.

Use cases

Microservices and apps πŸ‘

The main use case is to support having one or more microservices (or apps) in a Monorepo, and share code between the services.

Libraries

Polylith for Python has support for building libraries to be published at PyPI, even if it isn't the main use case. More details about how to package libraries in the docs about Packaging & deploying.

✨ Examples ✨

Have a look at the Python Polylith Examples repository. It is a repository with an example Python setup of the Polylith Architecture. You will find examples of sharing code between different kind of projects, and developer tooling setup such as mypy and the venv.

Videos

Talks

  • Python Web Conference 2023 - Microservices, Monolith, Monorepos: the differences & how nicely Polylith solves the trade offs - A Fresh Take on Monorepos in Python (about 36 minutes)

Podcasts

Articles

poetry-poly-info-example

More Repositories

1

poetry-multiproject-plugin

A Poetry plugin that makes it simple to share code between projects in monorepos.
Python
183
star
2

clojurescript-amplified

Examples on how to setup a ClojureScript web app with tools from the JavaScript ecosystem.
Clojure
74
star
3

python-polylith-example

Example Polylith setup for Python
Python
47
star
4

vanillajs-components

You might (not) need a JavaScript framework
JavaScript
40
star
5

blog

code from blog posts
JavaScript
13
star
6

my-emacs-config

My Clojure, Python, JavaScript & TypeScript friendly Emacs config.
Emacs Lisp
13
star
7

pythonic-railway

Experimenting with Railway oriented programming and Python
Python
12
star
8

EPiServer-FakeMaker

Help features for test driving EPiServer CMS
C#
12
star
9

polylith-experiments

Experimenting with polylith
Clojure
11
star
10

IndexCardGenerator

Index Card Generator for Google Docs
10
star
11

sente-with-reagent-and-re-frame

This repo contain example code combining the sente realtime communication library with Reagent and re-frame.
Clojure
10
star
12

python-polylith-example-rye

Example Polylith setup for Python and Rye
Python
6
star
13

python-polylith-example-hatch

Example Polylith setup for Python and Hatch
Python
6
star
14

_tics.js

Programmer friendly web analytics
JavaScript
5
star
15

functional-python

Exploring how to use functional concepts in Python
Python
4
star
16

cljs-hello-world

ClojureScript: simple within parenthesis
Clojure
4
star
17

clojure-lambda-experiment

Experimenting with AWS Lambda, GraalVM and Clojure
Makefile
3
star
18

python-polylith-example-pdm

Example Polylith setup for Python and PDM
Python
3
star
19

python-polylith-example-pants

Example Polylith setup for Python and Pants Build
Python
3
star
20

vagrant

vagrant configurations
Ruby
2
star
21

tictacfunc-player

JavaScript
2
star
22

Presentations

code from presentations
JavaScript
2
star
23

email-attachments

A Clojure library that makes extracting attachments from email simple.
Clojure
2
star
24

python-polylith-docs

Documentation: Python tools for the Polylith Architecture
1
star