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.