Zenv Language - Écosystème complet avec hub web zenv-hub.vercel.app
Project description
🚀 Zenv - Écosystème de développement complet
Zenv est un écosystème complet de développement qui combine un runtime, un CLI et un gestionnaire de packages, conçu pour simplifier le développement avec une syntaxe Zenv intuitive.
✨ Fonctionnalités principales
- 🔄 Runtime Zenv - Exécute directement les fichiers
.zvet.py - 📦 Gestionnaire de packages - Installe, publie et gère les packages depuis Zenv Hub
- ⚡ Transpileur - Convertit la syntaxe Zenv simplifiée en Python
- 🌱 Environnements virtuels - Crée des environnements isolés
- 🏗️ Système de build - Construit des packages depuis des manifestes
.zcf - 🔗 Hub intégré - Publie et installe depuis zenv-hb
🚀 Installation rapide
# Clonez le dépôt
git clone https://github.com/gopu-inc/zenv.git
cd zenv
# Installation
pip install -e .
# Vérifiez l'installation
zenv version
ou via python 🐍
pip install zenv-lang
📖 Guide d'utilisation
Commande de base
zenv [commande] [options]
Commandes disponibles
Commande Description Exemple run Exécute un fichier .zv ou .py zenv run app.zv build Construit un package depuis .zcf zenv build -f package.zcf publish Publie sur Zenv Hub zenv publish dist/mon-package.zcf.gs install Installe depuis le hub zenv install mon-package venv Crée un environnement virtuel zenv venv mon-projet init Initialise un projet zenv init mon-package search Recherche des packages zenv search "web" list Liste les packages installés zenv list remove Supprime un package zenv remove mon-package info Infos détaillées zenv info mon-package hub Gestion du hub zenv hub status version Affiche la version zenv version
🎯 Syntaxe Zenv
La syntaxe Zenv est une simplification de Python :
# Syntaxe Zenv simplifiée
print "Bonjour depuis Zenv!"
def saluer(nom):
return "Bonjour " + nom + "!"
# Exécution
if __name__ == "__main__":
resultat = saluer("Monde")
print resultat
Transpilé en Python :
print("Bonjour depuis Zenv!")
def saluer(nom):
return "Bonjour " + nom + "!"
if __name__ == "__main__":
resultat = saluer("Monde")
print(resultat)
📦 Manifeste de package (.zcf)
Créez un fichier package.zcf :
[Zenv]
name = mon-package
version = 1.0.0
author = Votre Nom
description = Mon package Zenv
license = MIT
[File-build]
main = src/main.zv
include =
src/**/*.zv
src/**/*.py
README.md
exclude =
tests/
__pycache__/
[Dep.zv]
# Dépendances Zenv
zenv-utils = latest
zenv-web = 2.0.0
[Dep.py]
# Dépendances Python
requests = latest
flask = >=2.0.0
[Build]
type = zenv
output = dist/{name}-{version}.zcf.gs
compression = gzip
🛠️ Créer et publier un package
- Initialiser un projet
zenv init mon-package
cd mon-package
- Éditer les fichiers
· Modifiez src/main.zv (votre code Zenv) · Configurez package.zcf (manifeste)
- Construire le package
zenv build -f package.zcf
# Crée dist/mon-package-1.0.0.zcf.gs
- Se connecter au hub
zenv hub login votre_token_zenv
- Publier
zenv publish dist/mon-package-1.0.0.zcf.gs
🔧 Installation depuis Zenv Hub
# Se connecter (optionnel, pour packages privés)
zenv hub login votre_token_zenv
# Installer un package
zenv install mon-package
# Installer une version spécifique
zenv install mon-package@1.0.0
zenv install mon-package==1.0.0
# Vérifier l'installation
zenv list
zenv info mon-package
# Exécuter
zenv run ~/.zenv/packages/mon-package/src/main.zv
🌐 Zenv Hub
Le hub Zenv est disponible à : https://zenv-hub.onrender.com
Endpoints API
· GET /api/packages - Liste tous les packages · GET /api/packages/download/{name}/{version} - Télécharge un package · POST /api/packages/upload - Upload un package (authentification requise) · GET /api/health - Vérifie l'état du serveur
Token d'authentification
Obtenez un token via :
· Interface web du hub · Commande zenv hub login · Token prédéfini admin : zenv_ead27bf9d1b91e30729eb574a82e7287d4c9f35df9f8feb4f581452444350a5b
🌱 Environnements virtuels
# Créer un environnement
zenv venv mon-env
# Activer
source mon-env/bin/zenv-activate
# Vérifier
echo $ZENV_ENV
# Installer des packages dans l'environnement
zenv install requests
# Désactiver
deactivate
📁 Structure des fichiers
~/.zenv/
├── packages/ # Packages installés
│ └── mon-package/
│ ├── src/
│ │ ├── main.zv
│ │ └── main.py
│ ├── package.json
│ └── __init__.py
├── cache/ # Cache système
└── token # Token d'authentification
🧪 Exemples
Exemple 1 : Script simple
hello.zv :
print "Hello World!"
print "Version:", 1.0
def calculer(a, b):
return a + b * 2
result = calculer(5, 3)
print "Résultat:", result
Exécution :
zenv run hello.zv
Exemple 2 : Package complet
Structure :
mon-app/
├── package.zcf
├── README.md
└── src/
├── __init__.zv
├── main.zv
├── utils.zv
└── config.zv
🔍 Recherche de packages
# Rechercher
zenv search "utils"
zenv search "web"
zenv search "" # Tous les packages
# Infos détaillées
zenv info zenv-utils
🗑️ Gestion des packages
# Lister
zenv list
# Supprimer
zenv remove mon-package
# Vérifier
zenv info mon-package # "Package non trouvé"
🐛 Dépannage
Problèmes courants
- "Token manquant"
zenv hub login votre_token
- Package non trouvé
# Vérifier les packages disponibles zenv search "" # ou curl https://zenv-hub.onrender.com/api/packages
- Erreur de transpilation · Vérifiez la syntaxe Zenv · Les fichiers doivent être UTF-8
- Erreur d'exécution
# Mode debug export ZENV_DEBUG=1 zenv run fichier.zv
📚 API de développement
Importer dans Python
from zenv.runtime.run import ZenvRuntime
from zenv.transpiler.tra import ZenvTranspiler
from zenv.builder.build import ZenvBuilder
# Runtime
runtime = ZenvRuntime()
runtime.execute("script.zv")
# Transpileur
transpiler = ZenvTranspiler()
python_code = transpiler.transpile(zv_code)
# Builder
builder = ZenvBuilder()
builder.build_from_manifest("package.zcf")
Extension du CLI
from zenv.command.com import ZenvCLI
class MonCLI(ZenvCLI):
def cmd_macommande(self, args):
print("Ma commande personnalisée!")
return 0
🏗️ Architecture
zenv/
├── __init__.py # Configuration globale
├── __main__.py # Point d'entrée
├── runtime/ # Runtime d'exécution
│ ├── __init__.py
│ └── run.py
├── command/ # Commandes CLI
│ ├── __init__.py
│ └── com.py
├── transpiler/ # Transpileur Zenv→Python
│ ├── __init__.py
│ └── tra.py
├── builder/ # Système de build
│ ├── __init__.py
│ └── build.py
└── tests/ # Tests unitaires
🤝 Contribution
- Forkez le projet
- Créez une branche (git checkout -b feature/ma-fonctionnalite)
- Commitez (git commit -am 'Ajout de ma fonctionnalité')
- Pushez (git push origin feature/ma-fonctionnalite)
- Créez une Pull Request
📄 License
MIT License - Voir le fichier LICENSE pour plus de détails.
🙏 Remerciements
· Python - Le langage de base · Render - Hébergement du Zenv Hub · GitHub - Hébergement du code
📞 Support
· Issues GitHub : https://github.com/gopu-inc/zenv/issues · Email : support@zenv.dev
Zenv - Simplifiez votre développement avec une syntaxe intuitive et un écosystème complet. 🚀
🎉 Prochaines étapes
- Ajouter plus de syntaxe Zenv - Plus de simplifications
- Interface web pour le hub - Interface utilisateur graphique
- Plugins - Système d'extensions
- Intégration CI/CD - Tests automatiques
- Documentation API - Documentation détaillée
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 zenv_lang-1.0.0.tar.gz.
File metadata
- Download URL: zenv_lang-1.0.0.tar.gz
- Upload date:
- Size: 25.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bcef2bf34470920dc4949bb734cbafcd0ee149786a91beec7213c634bf73f37d
|
|
| MD5 |
995baab4db90f38ba0a8f86d8a1276e8
|
|
| BLAKE2b-256 |
20b16df16f9208bd7b5a67cb801fb0b43f1641d7faf85082f55a28ca91ddcc26
|
File details
Details for the file zenv_lang-1.0.0-py3-none-any.whl.
File metadata
- Download URL: zenv_lang-1.0.0-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21c28fcd304daae7c0971658ad46ef091035d69be41224cc8748c193e9d440b1
|
|
| MD5 |
c3f61e381443837610864afdad9e409b
|
|
| BLAKE2b-256 |
0f3b2c923a4ee3ed77b8efd63a5716b621b081d1a7f59b4e26914a297d034ca4
|