/snok

🚀 A simple, modern, full-stack toolkit for Python 🐍

Primary LanguagePythonMIT LicenseMIT

Snok

🚀 A simple, modern, full-stack toolkit for Python 🐍

Test publish Coverage PyPI


Documentation: https://snok.corletti.xyz

Source Code: https://github.com/anthonycorletti/snok


Snok is a simple, modern, full-stack toolkit for Python.

Snok is in it's earliest stages, so feedback and ideas are very welcome and encouraged. Please open an issue if you have a question, comment, feature request, idea, etc, and/or connect with Anthony directly on Twitter if you'd like to get in touch about the project.

🙋 Why?

The Python tooling ecosystem has plenty of options, and often times, it's not clear whether or not you're following the "right" way to do things, especially when those ways are changing week to week.

With this in mind, snok is a Python toolkit for developers that focuses on making it simple and easy to build modern, full-stack applications, across web and AI frameworks.

Snok leverages tools and packages from the Python ecosystem with awesome performance and developer experience to provide simple, effective, and easy to use workflows for developers.

Snok is designed for the programmer, and not much else.

🎉 Featuring

  • Package generation
  • Built-in dependency management
  • Packaging with setuptools
  • Linting and formatting with ruff and black
  • Type checking with mypy
  • Async, multi-worker testing with pytest
  • Async API scaffolding with fastapi
  • Async database integration with pydantic, sqlmodel, and alembic
  • Natively deploy to Modal and run key-value stores, jobs, and seamlessly access GPU compute.

🤩 Coming Soon

  • AI framework integrations with pytorch and langchain
  • Documentation site generation with mkdocs and mkdocs-material
  • Connect to monitoring with services like sentry and logz, or with DIY opentelemetry
  • Web-page generation with tailwindcss and htmx
  • Deployment stacks with docker, skaffold and kustomize
  • Queueing and caching stacks with arq and redis
  • Want to make a feature request? 📥 Submit one here!

Check out the latest issues and pull requests to see what else is happening.

📝 Requirements

  • Python 3.11+
  • pip

⚙️ Installation

After you've created your Python 3.11+ virtual environment in a new directory, install Snok:

pip install snok

🐍 Getting Started

Create a new package with:

snok new mypackage

To install dependencies:

snok install

To add a new dependency:

snok add fastapi

To remove a dependency:

snok remove fastapi

🫶 How can I help?

📲 Contact

Reach out on Twitter if you'd like to get in touch!