Workpeg function runtime and SDK
Project description
Workpeg SDK
Python SDK for building, packaging, and running Workpeg Functions and Pegs.
The SDK provides:
- Project scaffolding
- Local execution (fast + Docker runtime)
- Docker-based packaging
- Registry submission
Workpeg is designed as an execution layer, not just a code runner — functions evolve into Pegs that integrate into a larger system.
Repository https://gitlab.com/workpeg/workpeg-sdk
Installation
pip install workpeg
Or from source:
pip install -e .
Quick Start
1. Create a Function
workpeg new-function my-function
Structure:
my-function/
app/
__init__.py
main.py
Example:
def main(context, payload):
return {
"message": "Hello from Workpeg",
"payload": payload,
}
2. Run (Fast Local Runtime)
For quick iteration without Docker:
echo '{"context": {}, "payload": {"name": "world"}}' | workpeg runtime
3. Build (Docker Image)
workpeg build
Optional tag:
workpeg build --tag my-image
This produces a runnable container for your function.
4. Run (Docker Runtime)
workpeg run --with docker
This will:
- Build the image (if needed)
- Start a container
- Expose an HTTP endpoint
Default:
http://localhost:8000
Optional network (advanced)
workpeg run --with docker --network workpeg_net
Useful when integrating with other containers (e.g. your API service).
5. Submit to Registry
workpeg submit my-function:1.0.0
Authentication:
export WORKPEG_PK=<your-token>
Registry:
https://repo.workpeg.com
Runtime Modes
Workpeg supports multiple execution backends:
| Runtime | Purpose | Status |
|---|---|---|
| docker | Local development | ✅ Available |
| cracker | Firecracker microVMs | 🚧 Planned |
Select runtime:
workpeg run --with docker
If unspecified:
- Uses
workpeg.json - Falls back to
cracker(future default)
Configuration
Optional config file:
workpeg.json
Example:
{
"runtime": {
"default": "docker",
"docker": {
"port": 8000
}
},
"build": {
"image": "my-custom-image"
}
}
Function Contract
Your function must implement:
def main(context: dict, payload: dict):
return {...}
Input
{
"context": {...},
"payload": {...}
}
Success Output
{
"status": "success",
"result": {...}
}
Error Output
{
"status": "error",
"error_type": "...",
"error": "..."
}
Entrypoint
Default:
app.main:main
Override:
FUNCTION_ENTRYPOINT=app.main:handler workpeg runtime
Project Layout
my-function/
├─ app/
│ ├─ __init__.py
│ └─ main.py
├─ requirements.txt
└─ workpeg.json (optional)
Docker Requirement (Important)
For workpeg build and workpeg run --with docker:
- Docker must be installed
- Docker CLI must be available on PATH
- Docker daemon must be running
If using inside containers:
-v /var/run/docker.sock:/var/run/docker.sock
Philosophy
Workpeg is built around a simple progression:
Function → Package → Runtime → Peg → System
- Functions are stateless execution units
- Pegs add structure, state, and integrations
- Workpeg orchestrates execution
Roadmap
Planned:
- Firecracker runtime (production)
- Warm container/microVM execution
- Peg UI layer (Streamlit-like)
- Deployment workflows
- Isolation + sandboxing
- Registry approvals & governance
License
MIT License
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file workpeg-0.3.2.tar.gz.
File metadata
- Download URL: workpeg-0.3.2.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08e0dcf2c078d103c5fbc595460824b3ecb7104b34bcdbb76615599abaf8ccc9
|
|
| MD5 |
8f36c8955b7c2cb64a360b9187ee8a51
|
|
| BLAKE2b-256 |
a5be03261908f2b4a886cac14a02899bd162cd79b87e556cb36304fab2e6a80d
|
File details
Details for the file workpeg-0.3.2-py3-none-any.whl.
File metadata
- Download URL: workpeg-0.3.2-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7754bbeb390e928ad40cc9aed2fb7c6093214383cda63798838ebc7ef0e634da
|
|
| MD5 |
e72dcb77d25ad26ed031befa4e3069c2
|
|
| BLAKE2b-256 |
08f51dec1c8285c7c40d4bce08834a6307ccfea2a27beaa7866c1cca449871c1
|