El marco web completo para Go. Bud escribe el código aburrido por ti, ayudándote a lanzar tu sitio web más rápido.
Mire un vídeo que muestra cómo crear un clon HN mínimo en 15 minutos con Bud.
Lea la documentación para saber cómo empezar a utilizar Bud.
Bud se envía como un único binario que se ejecuta en Linux y Mac. Puede seguirnos para obtener soporte de Windows en este problema.
La forma más sencilla de comenzar es copiar y pegar el siguiente comando en su terminal:
curl -sf https://raw.githubusercontent.com/livebud/bud/main/install.sh | sh
Este script descargará el binario correcto para su sistema operativo y lo moverá a la ubicación correcta en su $PATH
.
Confirma que has instalado Bud escribiendo bud
en tu terminal.
bud -h
Deberías ver lo siguiente:
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
Se requiere el siguiente software para utilizar Bud.
Nodo v14+
Este es un requisito temporal que planeamos eliminar en la versión 0.3.
Ir v1.17+
Bud depende en gran medida de io/fs
y aprovechará los genéricos en el futuro, por lo que, si bien Go v1.16 funcionará, sugerimos ejecutar Go v1.18+ si puede.
Con Bud instalado, ahora puedes crear un nuevo proyecto:
$ bud create hello
$ cd hello
El comando crear creará todo lo que necesitas para comenzar con bud.
$ ls
go.mod node_modules/ package-lock.json package.json
... ¡lo cual no es muy útil! A diferencia de la mayoría de los otros frameworks fullstack, Bud comienza siendo muy minimalista. A medida que agregue dependencias, Bud generará todo el código aburrido para unir su aplicación. Veamos esto en acción.
Inicie el servidor de desarrollo con bud run
:
$ bud run
| Listening on http://127.0.0.1:3000
Haga clic en el enlace para abrir el navegador. Serás recibido con la página de bienvenida de Bud.
¡Felicitaciones! Estás ejecutando tu primer servidor web con Bud. El servidor de bienvenida es su punto de partida para aprender más sobre el marco.
Vea la demostración de Hacker News, lea la documentación, programe una llamada rápida o emprenda su propia aventura. El único límite es tu imaginación.
Discusiones recientes: Reddit, Hacker News, Twitter
Comencé a trabajar en Bud en abril de 2019 después de ver cuán productivos podían ser los desarrolladores en Laravel. Quería lo mismo para Go, así que decidí intentar crear Laravel para el ecosistema Go. Sin embargo, mi primera versión después de 6 meses necesitaba realizar scaffolding de muchos archivos para comenzar. Si vienes de Rails o Laravel, puedes encogerte de hombros y considerar esto como bastante normal.
Desafortunadamente, me ha echado a perder el renacimiento de los marcos frontend como Next.js que comienzan de forma básica, pero cada archivo que agrega mejora incrementalmente su aplicación web. Esto mantiene la complejidad inicial bajo control.
Con esta inspiración adicional, trabajé en la siguiente iteración durante los siguientes 18 meses.
Los objetivos ahora son:
Genere archivos solo cuando los necesite. Mantenga estos archivos generados alejados del código de su aplicación y brinde a los desarrolladores la opción de mantenerlos fuera del control de la fuente. No debería necesitar preocuparse por el código generado. Quizás te sorprenda saber que Go también genera código para convertir tu código Go en un ejecutable, pero funciona tan bien que no necesitas pensar en ello. Bud debería sentirse así.
Siéntase como si estuviera utilizando un marco JS moderno. Esto significa que debería funcionar con múltiples marcos frontend modernos como Svelte y React, admitir recarga en vivo y tener renderizado del lado del servidor para un mejor rendimiento y SEO.
El marco debería ser extensible desde el día 1. Bud es demasiado ambicioso para una sola persona. Necesitaremos una comunidad ambiciosa detrás de este marco. La extensibilidad debe impulsarse principalmente agregando código, en lugar de agregando configuración.
Bud debería proporcionar API de alto nivel y con seguridad de tipos para los desarrolladores mientras genera código Go de bajo nivel y de alto rendimiento bajo las sábanas.
Bud debería compilarse en un único binario que contenga toda su aplicación web y pueda copiarse en un servidor que ni siquiera tenga Go instalado.
Consulte la Guía de contribución para aprender cómo desarrollar Bud localmente.