Snode è un piccolo runner di JavaScript fatto in Python e Dromi.
Snode nasce come progetto sperimentale per esplorare come si possa creare un runtime JavaScript simile a Node.js utilizzando Python.
L’idea è:
- capire come funziona un runtime JS in pratica
- costruire un sistema di esecuzione semplice con Js2Py
- sperimentare un sistema di moduli (
require) - creare un package manager leggero (SPM)
👉 Snode non vuole sostituire Node.js, ma essere un progetto educativo e creativo per imparare come funzionano i runtime e gli ecosistemi di sviluppo.
Verifica di aver installato Python:
pythone poi esci dalla REPL di Python:
Python 3.12.0 on MySYS x64 - Compiled 05.12.2020 15:10
Type "license", "copyright", "help" for more information.
>>>exit()
ora clona il Repo:
git clone https://github.com/dromilang/snode.gite fai i comandi:
cd snode
pip install -r requirements.txtpoi:
python snode.pyapparirá la REPL di Snode:
Snode 1.0.0 Alpha 0
Digita .help per più informazioni.
>
qui potrai digitate i comandi JS:
>var addizione = 2 + 4
>addizione
6
> console.log("Ciao mondo Snode!")
Ciao mondo Snode!
Comunque potrete incappare in errori:
>console.log(ciao)
Errore nell'esecuzione di:
console.log(ciao)
Messaggio dell'errore:
The variable 'ciao' is not defined
>
SPM è il gestore di Pacchetti di Snode. Per scaricare un pacchetto, dovrete aggiungere degli url nel file trusted_indexes.txt. Il formato è:
nomepacchetto=zips.esempio.it/url/zip/pacchetto/nomepacchetto.zip
Una volta fatto, provate a fare:
python spm.py install nomepacchetto -gpython- Pythonspm.py- Il file di SPMinstall- per installarenomepacchetto- il nome del pacchetto-glo installa globalmente, non per il progetto
La funzione require() integrata permette di includere moduli:
>var hello_world = require("__snode_hello__")
>hello_world
Ciao mondo!
>var tzdata = require("simple_tzdata")
>tzdata.europeRome()
{-9223372036854775808 2996 0 LMT}
{-3252098996 2996 0 RMT}
{-2403565200 3600 0 CET}
{-1690765200 7200 1 CEST}
--snip--
Snode è un progetto in fase Alpha, quindi:
- può contenere bug
- alcune funzioni possono cambiare
- è ancora sperimentale
Snode è creato con Python, Js2Py, colorama e tanta sperimentazione.
