Skip to content

Commit

Permalink
Merge pull request #555 from gauge-sh/update-readme-1-16-25
Browse files Browse the repository at this point in the history
[0.21.0] Update README
  • Loading branch information
emdoyle authored Jan 17, 2025
2 parents 8304bbb + 90f38d7 commit 3f36824
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
[![pyright](https://microsoft.github.io/pyright/img/pyright_badge.svg)](https://microsoft.github.io/pyright/)
[![ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)

a Python tool to enforce dependencies, written in Rust. Inspired by modular monolithic architecture.
Tach is a Python tool to enforce dependencies and interfaces, written in Rust. Tach is inspired by the [modular monolith](https://www.milanjovanovic.tech/blog/what-is-a-modular-monolith) architecture.

[Docs](https://docs.gauge.sh)

Expand All @@ -18,21 +18,25 @@ a Python tool to enforce dependencies, written in Rust. Inspired by modular mono
<img src="docs/assets/light_logo.png" alt="gauge-logo" width="30%" style="border-radius: 50%; padding-bottom: 20px"/>
</div>

Tach lets you define and enforce dependencies between Python modules within your project.

Here's an example:

![tach_demo](https://github.com/gauge-sh/tach/assets/10570340/6fc1e9b4-5a78-4330-a329-9187bd9c374d)

If a module tries to import from another module that is not listed as a dependency, Tach can prevent it.
![tach_demo_1_16_25](https://github.com/user-attachments/assets/88770da4-f71b-41a9-9526-27b76a2d49d7)

Tach can enforce:

- πŸ“‹ Imports only come from [declared dependencies](https://docs.gauge.sh/configuration#modules)
- 🀝 Cross-module calls use the [public interface](https://docs.gauge.sh/configuration#interfaces)
- ⛓️‍πŸ’₯ [No cycles](https://docs.gauge.sh/configuration) in the dependency graph


Tach is:

- 🌎 Open source
- 🐍 Installable via pip
- πŸ”§ Able to be adopted incrementally
- ⚑ Implemented with no runtime impact
- ♾️ Interoperable with your existing systems (cli, hooks, ci, etc.)
- ♾️ Interoperable with your existing systems

## Getting Started

Expand Down Expand Up @@ -151,7 +155,7 @@ Tach also supports:
- [Incremental adoption](https://docs.gauge.sh/usage/unchecked-modules)
- [Manual file configuration](https://docs.gauge.sh/usage/configuration)
- [Monorepos and namespace packages](https://docs.gauge.sh/usage/configuration#source-roots)
- [Inline exceptions](https://docs.gauge.sh/usage/tach-ignore)
- [Inline 'ignore' comments](https://docs.gauge.sh/usage/tach-ignore)
- [Pre-commit hooks](https://docs.gauge.sh/usage/commands#tach-install)

More info in the [docs](https://docs.gauge.sh/). Tach logs anonymized usage statistics which can be [opted out](https://docs.gauge.sh/usage/faq/) of.
Expand Down
Binary file modified docs/assets/tach_show.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3f36824

Please sign in to comment.