DEV Community

loading...

Getting started with Fiber

Fenny
Senior Go and Node.js Developer
Updated on ・2 min read

New gophers that make the switch from Node.js to Go are dealing with a learning curve before they can start building their web applications or microservices. Fiber, as a web framework, was created with the idea of minimalism and follows the UNIX way, so that new gophers can quickly enter the world of Go with a warm and trusted welcome.

Fiber is inspired by Express, the most popular web framework on the Internet. We combined the ease of Express and raw performance of Go. If you have ever implemented a web application in Node.js (using Express or similar), then many methods and principles will seem very common to you.

We listen to our users in issues, Discord channel and all over the Internet to create a fast, flexible and friendly Go web framework for any task, deadline and developer skillset! Just like Express does in the JavaScript world.

Step 1: Install Go

You can get the latest version of Go from the official Golang website follow the instructions and you're good to go, make sure you install Go 1.14 or higher.

To confirm you have Go installed open your terminal or command prompt and run the following command:

> go version
go version go1.15 windows/amd64
Enter fullscreen mode Exit fullscreen mode

You should get the version number of your Go installation.

Step 2: Creating your first project

In your project directory, we want to create a go.mod to manage our dependencies. Type the following:

> go mod init demo
go: creating new go.mod: module demo
Enter fullscreen mode Exit fullscreen mode

Now create a file called main.go in the project directory write the following code in it:

package main

import (
    "log"

    "github.com/gofiber/fiber/v2"
)

func main() {
    app := fiber.New()

    app.Get("/", func(c *fiber.Ctx) error {
        return c.SendString("Hello, World 👋!")
    })

    log.Fatal(app.Listen(":3000"))
}
Enter fullscreen mode Exit fullscreen mode

The above code is actually the bare-bones to get the server respond with a Hello, World 👋!

Save the file and run the following command to update your go.mod

> go mod tidy
go: finding module for package github.com/gofiber/fiber/v2
go: found github.com/gofiber/fiber/v2 in github.com/gofiber/fiber/v2 v2.0.5
Enter fullscreen mode Exit fullscreen mode

This will create a go.sum file that ensures that future downloads of these modules retrieve the same bits as the first download, to ensure the modules your project depends on do not change unexpectedly, whether for malicious, accidental, or other reasons

Your project folder should contain the following file structure:

/GettingStarted
   ├── main.go
   ├── go.mod
   └── go.sum
Enter fullscreen mode Exit fullscreen mode

Let's launch our app by calling the following command:

go run main.go
Enter fullscreen mode Exit fullscreen mode

Visit http://localhost:3000 in your browser. You will see the following:

At this point, you have successfully set up your first Fiber application.

Step 3: Explore Fiber

Fiber has a great community and online documentation that can help you creating fast and secure web apps.

See ya 👋

Discussion (7)

Collapse
hamptonjt profile image
Jerry Hampton

Greetings! I've been wanting to try Go for a while and this looks awesome coming from a Node background. I really want to see this take off. Do you have any examples of this working with SSO (SAML, in particular?) because we utilize Shibboleth where I work. I'd love to transition some of our APIs to use this instead of Express. Great work on this!

Collapse
hamptonjt profile image
Jerry Hampton

Just wanted to give an update on saml... I’ve got a working proof of concept that I can take to the office... this framework really rocks and I just wanted to thank you for all your work.

Collapse
koddr profile image
Vic Shóstak

Awesome article! Thanks :)

Collapse
fhek789 profile image
Felipe Kinoshita

really nice intro to fiber! You should made more fiber tutorials/guides especially since you created it l!

Collapse
kiyonlin profile image
kiyon

Great introduction to fiber! So easy to start a web server with tons of features out of box.

Collapse
s1ntaxe770r profile image
s1ntaxe770r

You're doing really good work fenny, the fiber community is very welcoming

Collapse
aceix profile image
the.Aceix

Thanks. Was looking for pointers as I am new to Go