• This repository has been archived on 24/Feb/2024
  • Stars
    star
    8,034
  • Rank 4,387 (Top 0.09 %)
  • Language
    Go
  • License
    MIT License
  • Created over 9 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Rapid Web Development w/ Go

PkgGoDev Go Report Card Open Source Helpers

Buffalo

A Go web development eco-system, designed to make your project easier.

Buffalo helps you to generate a web project that already has everything from front-end (JavaScript, SCSS, etc.) to the back-end (database, routing, etc.) already hooked up and ready to run. From there it provides easy APIs to build your web application quickly in Go.

Buffalo isn't just a framework; it's a holistic web development environment and project structure that lets developers get straight to the business of, well, building their business.

I ❀️ web dev in go again - Brian Ketelsen

Versions

The current stable version of Buffalo core is v1 (v1 branch).

Versions (branches):

  • main is for the current mainstream development.
  • v1 is the current stable release.

⚠️ Important

Buffalo works only with Go modules. GOPATH mode is likely to break most of the functionality of the Buffalo eco-system. Please see this blog post for more information.

Also, the Buffalo team actively gives support to the last 2 versions of Go, which at the moment are:

  • 1.16.x
  • 1.17.x

While Buffalo may work on older versions, we encourage you to upgrade to latest 2 versions of Go for a better development experience.

Documentation

Please visit http://gobuffalo.io for the latest documentation, examples, and more.

Quick Start

Shoulders of Giants

Buffalo would not be possible if not for all of the great projects it depends on. Please see SHOULDERS.md to see a list of them.

Templating

github.com/gobuffalo/plush - This templating package was chosen over the standard Go html/template package for a variety of reasons. The biggest of which is that it is significantly more flexible and easy to work with.

Routing

github.com/gorilla/mux - This router was chosen because of its stability and flexibility. There might be faster routers out there, but this one is definitely the most powerful!

Task Runner (Optional)

github.com/markbates/grift - If you're familiar with Rake tasks from Ruby, you'll be right at home using Grift. This package was chosen to allow for the easy running of simple, and common, tasks that most web applications need. Think things like seeding a database or taking in a CSV file and generating database records. Buffalo ships with an example routes task that prints of the defined routes and the function that handles those requests.

Models/ORM (Optional)

github.com/gobuffalo/pop - Accessing databases is nothing new in web applications. Pop, and its command line tool, Soda, were chosen because they strike a nice balance between simplifying common tasks, being idiomatic, and giving you the flexibility you need to build your app. Pop and Soda share the same core philosophies as Buffalo, so they were a natural choice.

Sessions, Cookies, WebSockets, and more

github.com/gorilla - The Gorilla toolkit is a great set of packages designed to improve upon the standard library for a variety of web-related packages. With these high-quality packages Buffalo can keep its "core" code to a minimum and focus on its goal of gluing them all together to make your life better.

Benchmarks

Oh, yeah, everyone wants benchmarks! What would a web framework be without its benchmarks? Well, guess what? I'm not giving you any! That's right. This is Go! I assure you that it is plenty fast enough for you. If you want benchmarks you can either a) check out any benchmarks that the GIANTS Buffalo is built upon having published, or b) run your own. I have no interest in playing the benchmark game, and neither should you.

Contributing

First, thank you so much for wanting to contribute! It means so much that you care enough to want to contribute. We appreciate every PR from the smallest of typos to the be biggest of features.

Here are the core rules to respect:

  • If you have any question, please consider using the Slack channel (-#buffalo-, #buffalo_fr or #buffalo-dev for contribution related questions) or Stack Overflow. We use GitHub issues for bug reports and feature requests only.
  • All contributors of this project are working on their free time: be patient and kind. :-
  • Consider opening an issue BEFORE creating a Pull request (PR): you won't lose your time on fixing non-existing bugs, or fixing the wrong bug. Also we can help you to produce the best PR!
  • Open a PR against the main branch if your PR is for mainstream or version specific branch e.g. v1 if your PR is for specific version. Note that the valid branch for a new feature request PR should be main while a PR against a version specific branch are allowed only for bugfixes.

For the full contribution guidelines, please read CONTRIBUTING.

More Repositories

1

packr

The simple and easy way to embed static files into Go binaries.
Go
3,412
star
2

pop

A Tasty Treat For All Your Database Needs
Go
1,401
star
3

plush

The powerful template system that Go needs
Go
851
star
4

envy

Envy makes working with ENV variables in Go trivial.
Go
155
star
5

fizz

A Common DSL for Migrating Databases
Go
147
star
6

docs

The source for the Buffalo website
JavaScript
110
star
7

flect

An inflection engine for golang
Go
99
star
8

vuerecipe

A recipe for using Buffalo & Vue.js
Go
96
star
9

validate

This package provides a framework for writing validations for Go applications.
Go
93
star
10

velvet

A sweet velvety templating package
Go
73
star
11

genny

A framework for writing modular generators
Go
65
star
12

toodo

A Simple Todo Application Written in Buffalo
Go
58
star
13

tags

HTML tags in Go
Go
53
star
14

buffalo-auth

Buffalo auth plugin helps adding username password authentication to your app
Go
42
star
15

nulls

A collection of null types for the sql package
Go
41
star
16

authrecipe

A recipe for using Buffalo & Password Authentication
Go
29
star
17

suite

A test suite for Buffalo applications
Go
26
star
18

lush

Go
25
star
19

shoulders

SHOULDERS.md generator
Go
20
star
20

buffalo-pop

A plugin to use gobuffalo/pop with buffalo
Go
19
star
21

cli

The Buffalo CLI
Go
19
star
22

here

Go
16
star
23

buffalo-heroku

Sets up and deploys apps to Heroku
Go
16
star
24

buffalo-plugins

This plugin has moved into github.com/gobuffalo/buffalo in buffalo v0.14.6. https://github.com/gobuffalo/buffalo
Go
16
star
25

events

Buffalo framework events management
Go
15
star
26

gocraft-work-adapter

Implements the github.com/gobuffalo/buffalo/worker.Worker interface using the github.com/gocraft/work package.
Go
14
star
27

httptest

Go
14
star
28

mw-tokenauth

Buffalo token-based-authentication middleware
Go
13
star
29

buffalo-goth

Goth Generator for Buffalo
Go
12
star
30

toolkit

A tool discovery service for https://gobuffalo.io
Go
12
star
31

clara

Go
11
star
32

makr

File generation system
Go
11
star
33

packd

gobuffalo/packr interfaces
Go
9
star
34

buffalo-cli

Tools for developing Buffalo applications (v2 - WIP)
Go
9
star
35

gothrecipe

A recipe for using Buffalo & Goth
Go
8
star
36

helpers

Go
8
star
37

logger

A common logging interface for the Buffalo ecosystem
Go
8
star
38

release

Buffalo ecosystem release tool
Go
8
star
39

mw-csrf

Buffalo CSRF Middleware
Go
7
star
40

grift

Go based task runner
Go
7
star
41

mw-basicauth

Buffalo Basic Auth Middleware
Go
6
star
42

mw-i18n

Buffalo i18n Middleware
Go
6
star
43

homebrew-tap

Homebrew Formula for the buffalo projects binaries
Ruby
6
star
44

licenser

Go
5
star
45

meta

Introspection for buffalo applications
Go
5
star
46

buffalo-docker

This plugin has moved into github.com/gobuffalo/buffalo in buffalo v0.14.7.
Go
4
star
47

simple-ajax-recipe

A simple AJAX recipe for Buffalo
Go
4
star
48

plugins

Go
4
star
49

soda

Soda is a CLI for https://github.com/gobuffalo/pop
Go
4
star
50

mw-forcessl

Buffalo Middleware to force SSL
Go
4
star
51

mw-paramlogger

Buffalo Params Logger Middleware
Go
3
star
52

x

Collection of packages meant to be a "testing" ground for Buffalo packages
Go
3
star
53

mw-contenttype

Buffalo Content Type Middleware
Go
3
star
54

plushgen

Go
2
star
55

pop-vgo

Shell
2
star
56

gitgen

Makefile
2
star
57

gogen

Go
1
star
58

attrs

Go
1
star
59

replo

A GO REPL
Go
1
star
60

middleware

The default middleware for Buffalo apps
Go
1
star
61

mapi

Go
1
star
62

mapgen

Go
1
star
63

depgen

Go
1
star
64

syncx

Go
1
star