J'aime bien aussi ce qu'elle en fait avec redbean, qui est à la fois:
- un fichier zip dans lequel on peut mettre, par exemple, des scripts JS, des pages HTML, du CSS, des scripts LUA
- un exécutable compilé contre la cosmopolitan qui fait serveur web et exécute les scripts LUA que vous voulez en réponse aux requêtes. Ça embarque sqlite en bonus si vous voulez faire du travail avec une BDD.
Du coup, vous remplissez le zip avec votre webapp et vous la mettez à disposition soit des clients finaux (-> ça fait une alternative lightweight à electron), soit sur un serveur quelconque (-> ça fait une alternative lightweight à Docker pour une part significative des usages de celui-ci).
Pareil, j'aime bien jouer avec Redbean. Déjà c'est super performant. Ensuite tu mets tout dans un zip exécutable ; le serveur peux livrer directement du deflate depuis le zip, pas de coût de compression à chaque requête. Enfin tu peux scripter en Lua, faire du sqlite.
Sur serveur, je déploie dans du Docker car c'est ma couche de banalisation de mon infra. Mais il serai possible de déployer directement l'exe avec autre chose.
Mais sur desktop, je comprends l'idée, ça fait un package light, un peu à la Appimage. D'autant que avec une ligne magique dans le fichier d'init (dans le zip exécutable), ça lance le navigateur à l'exécution.
Quelque chose en rapport avec une discipline médicale archaïque qui consiste à provoquer une libération accrue d'endorphine dans le cerveau avec une ventilation des bronches et une libération de monoxyde d'azote dans le sang pour augmenter la taille des vaisseaux sanguins. Le tout sans aucune action de psychotrope léger comme l'alcool ou le cannabis, ce qui requiert en revanche de solides aptitudes en psychologie appliquée afin d'obtenir les résultats les plus optimaux.
De toute évidence, ce TLD a été mis en place pour guider les adeptes de ce traitement dans le choix de leur praticien. Je vous rappelle toutefois que les effets secondaires existent et peuvent avoir des conséquences redoutables en surdosage.
Le code généré est interprété comme un script shell côté linux dont la première ligne MZqFpD=' correspond également à du code machine valide chez Windows.
Sous windows, les premières instructions (en langage machine) consistent à sauter à l’emplacement du code exécutable alors que sous Linux, le programme est lu comme un script shell, qui va s’auto décompresser pour lancer le code binaire qu’il contient.
J’imagine que le système trouve ses limites dès qu’il doit faire appel à des librairies tierces ?
void *dlopen(const char *file, int mode) {
return NULL;
}
Donc :
donc il est possible de charger des bibliothèques dynamiques
Possible, vraiment, tu as essayé? tu paries combien sur ton affirmation? ;-)
Bref : cliquer un peu plus sur les liens qu'on fournit soit-même et/ou se poser quelques questions si c'est cohérent et/ou essayer soit-même avant d'affirmer.
Note : dlopen c'est pour les lib chargées dynamiquement, mais pour du lié je doute encore plus que ce soit faisable, l'exercice semble avoir ses limites.
# Un ELF pour les exploiter tous...
Posté par volts . Évalué à 2.
…Et dans les ténèbres les contourner.
Cette libc, c'est de la sorcellerie oO
# -> Redbean : une alternative lightweight à Docker + electron (compile once, run everywhere)
Posté par Samuel (site web personnel) . Évalué à 8.
J'aime bien aussi ce qu'elle en fait avec redbean, qui est à la fois:
- un fichier zip dans lequel on peut mettre, par exemple, des scripts JS, des pages HTML, du CSS, des scripts LUA
- un exécutable compilé contre la cosmopolitan qui fait serveur web et exécute les scripts LUA que vous voulez en réponse aux requêtes. Ça embarque sqlite en bonus si vous voulez faire du travail avec une BDD.
Du coup, vous remplissez le zip avec votre webapp et vous la mettez à disposition soit des clients finaux (-> ça fait une alternative lightweight à electron), soit sur un serveur quelconque (-> ça fait une alternative lightweight à Docker pour une part significative des usages de celui-ci).
[^] # Re: -> Redbean : une alternative lightweight à Docker + electron (compile once, run everywhere)
Posté par steph1978 . Évalué à 2.
Pareil, j'aime bien jouer avec Redbean. Déjà c'est super performant. Ensuite tu mets tout dans un zip exécutable ; le serveur peux livrer directement du deflate depuis le zip, pas de coût de compression à chaque requête. Enfin tu peux scripter en Lua, faire du sqlite.
Sur serveur, je déploie dans du Docker car c'est ma couche de banalisation de mon infra. Mais il serai possible de déployer directement l'exe avec autre chose.
Mais sur desktop, je comprends l'idée, ça fait un package light, un peu à la Appimage. D'autant que avec une ligne magique dans le fichier d'init (dans le zip exécutable), ça lance le navigateur à l'exécution.
# gTLD du rire ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
C'est quoi dot lol ? Je connaissais point.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: gTLD du rire ?
Posté par volts . Évalué à 9.
Quelque chose en rapport avec une discipline médicale archaïque qui consiste à provoquer une libération accrue d'endorphine dans le cerveau avec une ventilation des bronches et une libération de monoxyde d'azote dans le sang pour augmenter la taille des vaisseaux sanguins. Le tout sans aucune action de psychotrope léger comme l'alcool ou le cannabis, ce qui requiert en revanche de solides aptitudes en psychologie appliquée afin d'obtenir les résultats les plus optimaux.
De toute évidence, ce TLD a été mis en place pour guider les adeptes de ce traitement dans le choix de leur praticien. Je vous rappelle toutefois que les effets secondaires existent et peuvent avoir des conséquences redoutables en surdosage.
[^] # Re: gTLD du rire ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Excellent. Merci beaucoup.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# Si je comprends
Posté par chimrod (site web personnel) . Évalué à 4.
Le code généré est interprété comme un script shell côté linux dont la première ligne
MZqFpD='
correspond également à du code machine valide chez Windows.Sous windows, les premières instructions (en langage machine) consistent à sauter à l’emplacement du code exécutable alors que sous Linux, le programme est lu comme un script shell, qui va s’auto décompresser pour lancer le code binaire qu’il contient.
J’imagine que le système trouve ses limites dès qu’il doit faire appel à des librairies tierces ?
[^] # Re: Si je comprends
Posté par Yth (Mastodon) . Évalué à 2.
La compilation se fait en statique, si c'est bien fait ça te fait un gros binaire, mais ya pas de libs externes.
[^] # Re: Si je comprends
Posté par devnewton 🍺 (site web personnel) . Évalué à 2.
Il y a dlopen donc il est possible de charger des bibliothèques dynamiques:
https://justine.lol/cosmopolitan/documentation.html#dlopen
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: Si je comprends
Posté par Zenitram (site web personnel) . Évalué à 1. Dernière modification le 01 septembre 2022 à 11:05.
Le "see also" pointe sur :
Donc :
Possible, vraiment, tu as essayé? tu paries combien sur ton affirmation? ;-)
Bref : cliquer un peu plus sur les liens qu'on fournit soit-même et/ou se poser quelques questions si c'est cohérent et/ou essayer soit-même avant d'affirmer.
Note : dlopen c'est pour les lib chargées dynamiquement, mais pour du lié je doute encore plus que ce soit faisable, l'exercice semble avoir ses limites.
[^] # Re: Si je comprends
Posté par devnewton 🍺 (site web personnel) . Évalué à 3.
Arg.
A creuser, car ce projet y arrive : https://github.com/jacereda/cosmogfx
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: Si je comprends
Posté par Zenitram (site web personnel) . Évalué à 1. Dernière modification le 01 septembre 2022 à 11:13.
Peut-être que le code pointé est remplacé à la volée pour l'OS qui va bien?
En tous cas il y a l'air d'avoir de la bidouille dans le repo que tu pointes :
https://github.com/jacereda/cosmogfx/blob/main/cosmogfx.c#L45-L66
Avec des binaires (dont le source est?) "helpers" par OS (sans Windows, peut-etre ailleurs, mais mon amusement à trouver a ses limites) :
https://github.com/jacereda/cosmogfx/tree/main/helper
Peut-être faisable mais il semble que ce n'est pas si simple qu'une ligne de commande ni pour tout les libs.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.