Skip to main content

Écosystème Zenv - Runtime, CLI et Package Manager

Project description

IMG_7694

🚀 Zenv - Écosystème de développement complet

Badge Zenv Version Python Version License

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 .zv et .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-hub.onrender.com

🚀 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

📖 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

  1. Initialiser un projet
zenv init mon-package
cd mon-package
  1. Éditer les fichiers

· Modifiez src/main.zv (votre code Zenv) · Configurez package.zcf (manifeste)

  1. Construire le package
zenv build -f package.zcf
# Crée dist/mon-package-1.0.0.zcf.gs
  1. Se connecter au hub
zenv hub login votre_token_zenv
  1. 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

  1. "Token manquant"
    zenv hub login votre_token
    
  2. Package non trouvé
    # Vérifier les packages disponibles
    zenv search ""
    # ou
    curl https://zenv-hub.onrender.com/api/packages
    
  3. Erreur de transpilation · Vérifiez la syntaxe Zenv · Les fichiers doivent être UTF-8
  4. 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

  1. Forkez le projet
  2. Créez une branche (git checkout -b feature/ma-fonctionnalite)
  3. Commitez (git commit -am 'Ajout de ma fonctionnalité')
  4. Pushez (git push origin feature/ma-fonctionnalite)
  5. 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

  1. Ajouter plus de syntaxe Zenv - Plus de simplifications
  2. Interface web pour le hub - Interface utilisateur graphique
  3. Plugins - Système d'extensions
  4. Intégration CI/CD - Tests automatiques
  5. Documentation API - Documentation détaillée

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zenv_lang-0.1.0.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zenv_lang-0.1.0-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file zenv_lang-0.1.0.tar.gz.

File metadata

  • Download URL: zenv_lang-0.1.0.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for zenv_lang-0.1.0.tar.gz
Algorithm Hash digest
SHA256 14b05da622ac1976997160c7b381846ddf282055958a9c8879f4ed1a7dc8fa45
MD5 e2e98c033254e6ebaf279f898294ddb0
BLAKE2b-256 4381024e6e94d32fe2fbd5cb67e9401158eb5d247b99c07bf80c5d1bd2bae97e

See more details on using hashes here.

File details

Details for the file zenv_lang-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: zenv_lang-0.1.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

Hashes for zenv_lang-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e517cc10f0ee557fcbecf123ef990bee090e35757acbfd6637867fb7620ceefc
MD5 27b2d5ec698f8be8007ddad0f4f5da48
BLAKE2b-256 e46af347247a56ca9da155fdf3faa770fbd040f88b3886f107e446a93c8cf9b8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page