Le framework Web Full-Stack pour Go. Bud écrit le code ennuyeux pour vous, vous aidant ainsi à lancer votre site Web plus rapidement.
Regardez une vidéo montrant comment créer un clone HN minimal en 15 minutes avec Bud.
Lisez la documentation pour savoir comment démarrer avec Bud.
Bud est livré sous forme de binaire unique fonctionnant sous Linux et Mac. Vous pouvez suivre le support Windows dans ce problème.
Le moyen le plus simple de commencer est de copier et coller la commande ci-dessous dans votre terminal :
curl -sf https://raw.githubusercontent.com/livebud/bud/main/install.sh | sh
Ce script téléchargera le bon binaire pour votre système d'exploitation et déplacera le binaire au bon endroit dans votre $PATH
.
Confirmez que vous avez installé Bud en tapant bud
dans votre terminal.
bud -h
Vous devriez voir ce qui suit :
Usage:
bud [flags] [command]
Flags:
-C, --chdir Change the working directory
Commands:
build build the production server
create create a new project
run run the development server
tool extra tools
version Show package versions
Le logiciel suivant est requis pour utiliser Bud.
Nœud v14+
Il s'agit d'une exigence temporaire que nous prévoyons de supprimer dans la version 0.3.
Allez v1.17+
Bud s'appuie fortement sur io/fs
et tirera parti des génériques à l'avenir. Ainsi, même si Go v1.16 fonctionnera, nous vous suggérons d'exécuter Go v1.18+ si vous le pouvez.
Une fois Bud installé, vous pouvez désormais créer un nouveau projet :
$ bud create hello
$ cd hello
La commande create créera tout ce dont vous avez besoin pour démarrer avec Bud.
$ ls
go.mod node_modules/ package-lock.json package.json
... ce qui n'est pas grand-chose d'ailleurs ! Contrairement à la plupart des autres frameworks fullstack, Bud démarre de manière très minimale. Au fur et à mesure que vous ajoutez des dépendances, Bud générera tout le code ennuyeux pour coller votre application ensemble. Voyons cela en action.
Démarrez le serveur de développement avec bud run
:
$ bud run
| Listening on http://127.0.0.1:3000
Cliquez sur le lien pour ouvrir le navigateur. Vous serez accueilli par la page d'accueil de Bud.
Bravo! Vous exécutez votre premier serveur Web avec Bud. Le serveur de bienvenue est votre point de départ pour en savoir plus sur le framework.
Découvrez la démo Hacker News, lisez la documentation, planifiez un appel rapide ou partez à l'aventure. La seule limite est votre imagination.
Discussions récentes : Reddit, Hacker News, Twitter
J'ai commencé à travailler sur Bud en avril 2019 après avoir constaté à quel point les développeurs pouvaient être productifs dans Laravel. Je voulais la même chose pour Go, alors j'ai décidé d'essayer de créer Laravel pour l'écosystème Go. Cependant, ma première version après 6 mois devait échafauder de nombreux fichiers juste pour commencer. Si vous venez de Rails ou de Laravel, vous pouvez hausser les épaules et considérer cela comme assez normal.
Malheureusement, j'ai été gâté par la renaissance des frameworks frontend comme Next.js qui démarrent barebones, mais chaque fichier que vous ajoutez améliore progressivement votre application Web. Cela permet de garder la complexité initiale sous contrôle.
Avec cette inspiration supplémentaire, j'ai travaillé sur la prochaine itération pendant les 18 mois suivants.
Les objectifs sont désormais :
Générez des fichiers uniquement selon vos besoins. Gardez ces fichiers générés à l'écart du code de votre application et donnez aux développeurs le choix de les garder hors du contrôle des sources. Vous ne devriez pas avoir à vous soucier du code généré. Vous serez peut-être surpris d'apprendre que Go génère également du code pour transformer votre code Go en exécutable, mais cela fonctionne si bien que vous n'avez pas besoin d'y penser. Bud devrait ressentir ça.
Envie d'utiliser un framework JS moderne. Cela signifie qu'il devrait fonctionner avec plusieurs frameworks frontaux modernes tels que Svelte et React, prendre en charge le rechargement en direct et disposer d'un rendu côté serveur pour de meilleures performances et un meilleur référencement.
Le cadre devrait être extensible dès le premier jour. Bud est trop ambitieux pour une seule personne. Nous aurons besoin d’une communauté ambitieuse derrière ce cadre. L'extensibilité doit être principalement pilotée par l'ajout de code plutôt que par l'ajout de configuration.
Bud devrait fournir des API de haut niveau et de type sécurisé aux développeurs tout en générant du code Go performant de bas niveau sous les couvertures.
Bud doit être compilé en un seul binaire contenant l'intégralité de votre application Web et pouvant être copié sur un serveur sur lequel Go n'est même pas installé.
Veuillez vous référer au Guide de contribution pour savoir comment développer Bud localement.