Super framework for your super app
Project description
🤖 Zrb (Read: Zaruba) : A Super Framework for Your Super App
📖 Documentation | 🏁 Getting Started | 💃 Oops, I did it Again | ❓ FAQ
Zrb is a CLI-based automation tool and low-code platform. Once installed, Zrb will help you automate day-to-day tasks, generate projects and applications, and even deploy your applications to Kubernetes with a few commands.
To use Zrb, you need to be familiar with CLI.
Zrb task definitions are written in Python, and we have a very good reason behind the decision.
Zrb is A Low-Code Framework
Let's see how you can build and run a CRUD application.
# Create a project
zrb project create --project-dir my-project --project-name "My Project"
cd my-project
# Create a Fastapp
zrb project add fastapp --project-dir . --app-name "fastapp" --http-port 3000
# Add library module to fastapp
zrb project add fastapp-module --project-dir . --app-name "fastapp" --module-name "library"
# Add entity named "books"
zrb project add fastapp-crud --project-dir . --app-name "fastapp" --module-name "library" \
--entity-name "book" --plural-entity-name "books" --column-name "code"
# Add column to the entity
zrb project add fastapp-field --project-dir . --app-name "fastapp" --module-name "library" \
--entity-name "book" --column-name "title" --column-type "str"
# Run Fastapp as monolith
zrb project start-fastapp --fastapp-run-mode "monolith"
You will be able to access the application by pointing your browser to http://localhost:3000
Furthermore, you can run the same application as microservices
, run the application as docker containers
, and even do some deployments into your kubernetes cluster
.
# Run Fastapp as microservices
zrb project start-fastapp --fastapp-run-mode "microservices"
# Run Fastapp as container
zrb project start-fastapp-container --fastapp-run-mode "microservices"
zrb project stop-fastapp-container
# Deploy fastapp and all it's dependencies to kubernetes
docker login
zrb project deploy-fastapp --fastapp-deploy-mode "microservices"
You can visit our tutorials to see more cool tricks.
Zrb is A Task-Automation Tool
Aside from the built-in capabilities, Zrb also allows you to define your automation commands in Python. To do so, you must create/modify a file named zrb_init.py
.
# filename: zrb_init.py
from zrb import runner, CmdTask, StrInput
hello = CmdTask(
name='hello',
inputs=[StrInput(name='name', description='Name', default='world')],
cmd='echo Hello {{input.name}}'
)
runner.register(hello)
Once defined, your command will be instantly available from the CLI:
zrb hello
# You can also provide the parameter directly:
# zrb hello --name "Go Frendi"
Name [world]: Go Frendi
🤖 ○ ◷ 2023-09-18 07:37:40.849 ❁ 47932 → 1/3 🍌 zrb hello • Run script: echo Hello Go Frendi
🤖 ○ ◷ 2023-09-18 07:37:40.849 ❁ 47932 → 1/3 🍌 zrb hello • Working directory: /home/gofrendi/zrb/playground
🤖 ○ ◷ 2023-09-18 07:37:40.854 ❁ 47933 → 1/3 🍌 zrb hello • Hello Go Frendi
Support zrb growth and development!
☕ Donate at: https://stalchmst.com/donation
🐙 Submit issues/PR at: https://github.com/state-alchemists/zrb
🐤 Follow us at: https://twitter.com/zarubastalchmst
🤖 ○ ◷ 2023-09-18 07:37:40.899 ❁ 47933 → 1/3 🍌 zrb hello • Completed in 0.052213191986083984 seconds
To run again: zrb hello --name "Go Frendi"
Hello Go Frendi
To learn more about this, you can visit our getting started guide.
🫰 Installation
⚙️ In Local Machine
Installing Zrb in your system is as easy as typing the following command in your terminal:
pip install zrb
Like any other Python package, you can install Zrb in your virtual environment. This will allow you to have many versions of Zrb on the same computer.
⚠️ If the command doesn't work, you probably don't have Pip/Python on your computer. See
Main prerequisites
subsection to install them.
🐋 With Docker
If you prefer to work with Docker, you can create a file named docker-compose.yml
version: '3'
networks:
zrb:
name: zrb
services:
zrb:
build:
dockerfile: Dockerfile
context: .
image: docker.io/stalchmst/zrb:latest
container_name: zrb
hostname: zrb
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./project:/project
networks:
- zrb
ports:
- 3001:3001 # or/and any other ports you want to expose.
Once your docker-compose file is created, you can invoke the following command:
docker compose up -d
You will be able to access Zrb by using docker exec:
docker exec -it zrb zsh
✅ Main Prerequisites
Since Zrb is written in Python, you need to install a few things before installing Zrb:
- 🐍
Python
- 📦
Pip
- 🏝️
Venv
If you are using 🐧 Ubuntu, the following command should work:
sudo apt install python3 python3-pip python3-venv python-is-python3
If you are using 🍎 Mac, the following command will work:
# Make sure you have homebrew installed, see: https://brew.sh/
brew install python3
ln -s venv/bin/pip3 /usr/local/bin/pip
ln -s venv/bin/python3 /usr/local/bin/python
If you prefer Python distribution like conda, that might work as well.
✔️ Other Prerequisites
If you want to generate applications using Zrb and run them on your computer, you will also need:
- 🐸
Node.Js
andNpm
.- You need Node.Js to modify/transpile frontend code into static files.
- You can visit the Node.Js website for installation instructions.
- 🐋
Docker
andDocker-compose
plugin.- You need
Docker
andDocker-compose
plugin to- Run docker-compose-based tasks
- Run some application prerequisites like RabbitMQ, Postgre, or Redpanda.
- The easiest way to install
Docker
,Docker-compose
plugin, and localKubernetes
is by using Docker Desktop. - You can also install
Docker
andDocker-compose
plugin by following the Docker installation guide.
- You need
- ☸️
Kubernetes
cluster.- Zrb allows you to deploy your applications into
Kubernetes
. - To test it locally, you will need a Minikube or other alternatives. However, the easiest way is by enabling
Kubernetes
on yourDocker Desktop
.
- Zrb allows you to deploy your applications into
- 🦆
Pulumi
- You need Pulumi to deploy your applications
🏁 Getting Started
We have an excellent getting started guide to help you cover the basics. Make sure to check it out😉.
📖 Documentation
You can visit Zrb documentation for more detailed information.
☕ Donation
Help Red Skull to click the donation button:
🎉 Fun Fact
Madou Ring Zaruba (魔導輪ザルバ, Madōrin Zaruba) is a Madougu which supports bearers of the Garo Armor. (Garo Wiki | Fandom)
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 Distribution
Built Distribution
File details
Details for the file zrb-0.0.109.tar.gz
.
File metadata
- Download URL: zrb-0.0.109.tar.gz
- Upload date:
- Size: 2.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0324cfc24e5c948477f82d477eae2047974ebc210f38e637122e7d3a07f1358 |
|
MD5 | 818a1ea781bfa43ded9a37b538bcb8f6 |
|
BLAKE2b-256 | 11917ade80be48c98e239cf1e97d5e96a598d912fa26c5a7c4ddf0695a910a97 |
File details
Details for the file zrb-0.0.109-py3-none-any.whl
.
File metadata
- Download URL: zrb-0.0.109-py3-none-any.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fce6410d7033c77aa2374aa29eb312bbca8a5b8f60b601d7d706bebb6b08efb |
|
MD5 | dbbf46c3b2201ebf8fb89412028b2e86 |
|
BLAKE2b-256 | 12aa0d6d9d09c71670db754509354e179c7c9189286e5a7e0fec7d3e979836ed |