IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Web Discussion :

La version 2 de Redbean, un serveur Web à fichier unique qui fonctionne sur tous les OS x86-64, est disponible


Sujet :

Conception Web

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Points : 66 309
    Points
    66 309
    Par défaut La version 2 de Redbean, un serveur Web à fichier unique qui fonctionne sur tous les OS x86-64, est disponible
    La version 2 de Redbean, un serveur Web à fichier unique qui fonctionne sur n'importe quel système d'exploitation x86-64, est disponible
    avec de nouvelles API, la complétion de code, etc.

    Justine Tunney, développeur de Redbean, a récemment publié la dernière version (Redbean 2.0) du serveur Web. Redbean 2.0 comporte un nouveau chargeur APE (Actually Portable Executable) qui permet d'exécuter le serveur sans modifier les en-têtes, permettant ainsi une exécution en mémoire. Si l'APE n'est pas installé sur le système, l'en-tête du script Shell extrait automatiquement l'APE. Les autres nouveautés de Redbean 2.0 comprennent une boucle REPL (Read Eval Print Loop) construite sur la bibliothèque "bestline", la complétion de code à l'aide de la touche Tab, la prise en charge des raccourcis clavier conformes à GNU Emacs, et bien d'autres encore.

    Redbean est un serveur Web à fichier unique qui fonctionne sur n'importe quel système d'exploitation x86-64 (GNU/Linux, macOS, Windows, FreeBSD, OpenBSD et NetBSD). Il permet de partager des applications Web qui fonctionnent hors ligne sous la forme d'une archive zip à fichier unique qui contient vos actifs. Il vous suffit de télécharger le programme "redbean.com", de changer le nom du fichier en .zip, d'ajouter votre contenu dans un outil d'édition de zip, puis de changer à nouveau l'extension en .com. Il n'y a pas besoin d'un proxy comme dans le cas du serveur nginx ; Redbean est intégré verticalement.

    Nom : redbean.png
Affichages : 64883
Taille : 197,4 Ko

    Selon le développeur, Redbean peut servir plus de 1 million de réponses codées gzip par seconde sur un ordinateur personnel bon marché. Tunney estime qu'avec la publication de Redbean 2.0, le projet n'est plus simple passe-temps. « Au cours de l'année dernière, nous avons fait de Redbean plus qu'un projet de loisir », a déclaré le développeur. Voici ci-dessous les nouveautés de Redbean 2.0.

    Nouveau chargeur APE

    Redbean utilise un hack appelé "APE" (Actually Portable Executable). L'idée est celle-ci : quel que soit le langage de programmation que vous utilisez, si vous compilez votre code en binaire natif, il produit du code machine x86-64 - et tout processeur x86-64 exécute le même code machine. Si vous écrivez un programme qui ne fait appel à aucun code externe, alors en principe, la seule différence entre un binaire Windows et (disons) un binaire Linux est le format du fichier qui contient le binaire. Donc, si vous pouviez contourner ce problème, votre programme pourrait être exécuté sur n'importe quel système d'exploitation.

    Les fichiers APE sont, comme leur nom l'indique, des exécutables réellement portables. Un seul fichier APE s'exécute correctement sur tout système d'exploitation x86-64. Lorsque le fichier est exécuté sous Windows, il se comporte comme un exécutable Windows et lorsque vous l'exécutez sur macOS, il se comporte alors comme un exécutable macOS. Lorsqu'il est exécuté sur Linux, c'est un binaire Linux, et c'est pareil sur FreeBSD, OpenBSD, NetBSD, même s'ils ont tous leurs propres formats d'exécutables différents. Toutefois, presque tous les programmes réels doivent faire appel à une bibliothèque, ne serait-ce que la bibliothèque standard C.

    C'est là qu'intervient la bibliothèque "Cosmopolitan" ou Cosmo. Grâce à la bibliothèque Cosmo, les programmes C peuvent être compilés et exécutés sur tout système d'exploitation supporté par le chargeur APE. Redbean 2.0 introduit un nouveau chargeur APE qui permet à votre serveur de s'exécuter sans avoir à automodifier son en-tête. À la place, la commande ape va alors placer votre redbean (serveur) en mémoire avec mmap(). Si l'APE n'est pas installé sur un système, l'en-tête du script Shell l'extraira automatiquement. Il y a un support shebang et un support binfmt_misc sur Linux également.

    Tunney indique que ces changements devraient avoir un impact favorable pour les distributions et les systèmes de construction, qui avaient des difficultés à empaqueter et distribuer les logiciels APE. Pour les utilisateurs qui veulent le comportement original, un drapeau --assimilate est introduit qui transformera votre redbean en format ELF ou Mach-O local à la plateforme.

    REPL

    Redbean 2.0 introduit une boucle de lecture, d'évaluation et d'impression ou REPL (Read Eval Print Loop) pour faire court. Il est construit sur la bibliothèque "bestline", puisqu'elle fournit une quasi-parité avec GNU Readline en matière de fonctionnalités, sauf qu'elle est sous licence MIT au lieu de LGPL, donc il n'y a pas d'exigence de liaison dynamique. Redbean ne peut pas lier dynamiquement les choses, car alors ce ne serait pas un seul fichier. Tunney a déclaré avoir mis beaucoup de travail dans la création de bestline, un fork de "linenoise", pour cette raison précise.

    Monkey Patching

    L'un des cas d'utilisation d'un REPL sur un serveur Web en direct est la possibilité d'appliquer des correctifs au code pendant que le serveur fonctionne. Redbean est un serveur Web à fourche. Cela signifie que le processus principal se comporte comme un modèle maître à partir duquel les processus ouvriers sont clonés. Ainsi, tout ce que vous modifiez dans la REPL se propage paresseusement dans les connexions client, au fur et à mesure que de nouvelles connexions sont créées, sans avoir d'impact sur les connexions actuellement actives. Les autres fonctionnalités notables de cette version sont :

    • complétion de code : Redbean 2.0 introduit la complétion de code. Comme pour Bash, vous pouvez appuyer sur Tab pour voir une liste de tous les fonctions et objets globaux disponibles. Si vous appuyez sur unix.<tab><tab>, alors vous verrez tous les objets et fonctions disponibles dans le module Unix ;
    • raccourcis clavier de GNU Emacs : les utilisateurs de GNU Emacs seront ravis d'apprendre que votre REPL redbean prend en charge presque tous les raccourcis clavier courants de style GNU, y compris CTRL-R pour la recherche inverse ;
    • module Unix : Redbean 2.0 introduit un nouveau module Unix implémenté dans tool/net/lunix.c ;
    • prise en charge du traçage : Redbean 2.0 introduit la journalisation facultative des appels système ;
    • améliorations de Lua : Redbean 2.0 apporte des améliorations au langage Lua qui sont destinées à aider les développeurs C/C++ et Python à se sentir plus à l'aise ;
    • nouvelles API : Redbean 2.0 introduit les fonctions natives suivantes : EncodeJson, EncodeLua, Compresser, Décompresser, GetMonospaceWidth, ProgramMaxPayloadSize, ProgramSslRequired, ProgramSslClientVerify, MeasureEntropy, Decimate, Benchmark, Rdtsc, Lemur64, Rand64, Rdrand, Rdseed, GetCpuCount, GetCpuCore, GetCpuNode, oct, hex, bin ;
    • redbean 2.0 ajoute la prise en charge du hachage moderne des mots de passe ;
    • corrections de bogues : cette version inclut de nombreuses corrections en amont de la bibliothèque Cosmo. La qualité du support de la plateforme Windows a été considérablement améliorée. Par exemple, fork() fonctionne maintenant suffisamment bien sous Windows pour que cette version l'active par défaut. De nombreux autres bogues sous Windows qui empêchaient Redbean de répondre aux interruptions CTRL-C ont également été résolus.


    Source : Redbean 2.0

    Et vous ?

    Quel est votre avis sur le sujet ?
    Que pensez-vous du serveur Web Redbean ?
    Que pensez-vous des nouveautés dans Redbean 2.0 ?

    Voir aussi

    Caddy, l'unique serveur web à utiliser HTTPS automatiquement et par défaut, écrit en langage Go

    JDK 18 : les nouvelles fonctionnalités de Java 18 incluent une API pour les vecteurs, un serveur Web minimal, et l'adoption d'UTF-8 comme jeu de caractères par défaut

    L'édition 2022 du rapport sur l'état du développement de WebAssembly révèle que Rust est le langage le plus utilisé et le plus recherché, et les applications Web sont le cas d'utilisation principal

    Fresh, un framework web de nouvelle génération, conçu pour la vitesse, la fiabilité et la simplicité, il apporte un peu de concurrence pour Next.js

  2. #2
    Membre expérimenté

    Homme Profil pro
    Retraite
    Inscrit en
    Octobre 2005
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 491
    Points : 1 383
    Points
    1 383
    Billets dans le blog
    1
    Par défaut
    Cela serait pas mal si quelqu'un se penchait dessus et montrait un exemple , installation et utilisation sur developpez.net,

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Juin 2022
    Messages : 1
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par JPLAROCHE Voir le message
    Cela serait pas mal si quelqu'un se penchait dessus et montrait un exemple , installation et utilisation sur developpez.net,
    Installation : Aller sur https://redbean.dev/ -> télécharger le fichier redbean-2.0.4.com

    Utilisation : Renommer redbean-2.0.4.com en redbean-2.0.4.zip -> ajouter un index.html contenant "Hello world" dans l'archive -> rechanger le nom en .com -> executer redbean-2.0.4.com (en CLI).

    Le site est maintenant accessible sur le port 8080.

    À savoir que j'ai eu un avertissement au téléchargement du fichier car il contiendrait des fichiers malveillants.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Points : 11
    Points
    11
    Par défaut
    Petit "gadget" bien perché que j'ai découvert grâce à cet article
    à savoir que cet unique .com tourne sur Win + Mac + Linux

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 2
    Points : 4
    Points
    4
    Par défaut Redbean 3.0.0 et luaonbeans.org
    Depuis le temps redbean 3.0.0 est sorti et de mon côté j'ai créé https://luaonbeans.org (toujours en cours de développement)
    Je trouve ce projet super intéressant et cela apporte un peu de fraicheur et de légèreté (oui en plus cela ne consomme que très peu de RAM et CPU)

Discussions similaires

  1. Réponses: 8
    Dernier message: 06/05/2014, 06h31
  2. Réponses: 2
    Dernier message: 04/08/2009, 10h55
  3. Réponses: 0
    Dernier message: 19/06/2009, 15h38
  4. [Web Service][SOAP] NuSOAP Webservice Sur tous serveurs ?
    Par Harry dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/01/2006, 15h59
  5. Reconnaitre le serveur sur tous les PC !
    Par Rémiz dans le forum Apache
    Réponses: 6
    Dernier message: 10/11/2005, 23h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo