Exemples
Hello World
Créez un fichier hello-world.mel, et mettez-y le code :
#!/usr/bin/env melodium
#! name = hello_world
#! version = 0.1.0
#! require = std:0.10.*
use std/engine/util::startup
use std/engine/log::logInfoMessage
treatment main() {
startup()
logInfoMessage(message = "Hello World!")
startup.trigger -> logInfoMessage.trigger
}
Exécutez-le avec melodium run hello-world.mel.
$ melodium run hello-world.mel
[2012-12-21T01:32:45.678Z] info: info: Hello World!Hello World (en tant que projet)
Créez un projet brut melodium new hello-world.
$ melodium new hello-world
success: program 'hello_world' created in 'hello-world'Dans le fichier lib-root.mel, mettez le code :
use std/engine/util::startup
use std/engine/log::logInfoMessage
treatment main() {
startup()
logInfoMessage(message = "Hello World!")
startup.trigger -> logInfoMessage.trigger
}Dans Compo.toml, ajoutez les entrées :
[entrypoints]
main = "hello_world::main"Exécutez avec melodium run hello-world/Compo.toml:
$ melodium run hello-world/Compo.toml
[2012-12-21T01:32:45.678Z] info: info: Hello World!Download
Créez un projet brut melodium new download.
$ melodium new download
success: program 'download' created in 'download'hello-world
├── Compo.toml
└── lib-root.melDans le fichier lib-root.mel, mettez le code :
use fs/local::writeLocal
use http/client/util::get
use std/engine/util::startup
use std/engine/log::logError
treatment download(url: string, file: string)
{
startup()
get(url=url)
writeLocal(path=file)
logError()
startup.trigger -> get.trigger,data -> writeLocal.data
get.error --------> logError.message
}
Dans Compo.toml, ajoutez les entrées :
[dependencies]
std = "^0.10.1"
fs = "^0.10.1"
http = "^0.10.1"
[entrypoints]
main = "download::download"Exécutez avec melodium run download/Compo.toml --url https://melodium.tech/img/voyage.jpeg --file nantes.jpeg
Plus d’exemples
Les exemples ci-dessous se trouvent dans le répertoire examples/ du dépôt Mélodium. Clonez-le pour les exécuter localement :
git clone https://github.com/melodium-tech/melodium.git
cd melodium/examplesChaque exemple est un projet Mélodium autonome avec un Compo.toml et un ou plusieurs fichiers .mel. Exécutez n’importe quel exemple avec :
melodium run <répertoire-exemple>/Compo.toml [point-entrée] [-- --arg valeur …]Exemples par catégorie
Dataflow & HTTP
| Exemple | Ce qu’il illustre |
|---|---|
| Pipeline HTTP + JSON | Dataflow pur, pas de modèles, client HTTP, parsing JSON |
| API SQL Utilisateurs | Modèle pool de connexions, serveur HTTP, requêtes SQL |
| Serveur de chat LLM | Réponses HTTP en flux, modèle LLM distant |
| Transformation JavaScript | Modèle moteur JS embarqué, transformation JSON par requête |
| Résumé de réunion | Pipeline STT → LLM en deux étapes par requête HTTP |
| Chat vision | LLM vision, deux points d’entrée (CLI + serveur HTTP) |
Parole & IA
| Exemple | Ce qu’il illustre |
|---|---|
| Transcription par lot | STT distant one-shot, pontage Block/Stream |
| Transcription vocale | Modèle Whisper local, téléchargement HuggingFace, micro ou fichier |
| Q&A vocal (local) | Whisper + Mistral locaux, chargement de modèles en parallèle |
| Pipeline vocal complet | Chaînage STT → LLM → TTS sur trois APIs cloud |
| Assistant vocal temps réel | Deux points d’entrée, tokens en flux vers la console |
Distribué & Cloud
| Exemple | Ce qu’il illustre |
|---|---|
| Travail distribué | DistantEngine + DistributionEngine, séparation serveur/worker |
| Traitement de texte distribué | Traitement JS distant, front-end HTTP, runner à la demande |
| Pipeline worker cloud | Fichier en entrée → traitement cloud → fichier en sortie, nettoyage explicite |
| Inférence LLM distribuée | LLM sur runner distant, passage de paramètres const, sans ML côté local |
| Pipeline CI | CicdDispatchEngine, étapes parallèles, sidecars de service, fork-join |