Go 1.18 Beta1 Adds Generics & New Tools, and Meet the Neo Web Framework

The Go 1.18 Beta1 release introduces generics support, workspace mode, fuzz testing, and performance improvements, while the newly announced Neo framework offers a lightweight, MIT‑licensed solution for building Go web applications with simple installation and example code.

21CTO
21CTO
21CTO
Go 1.18 Beta1 Adds Generics & New Tools, and Meet the Neo Web Framework

Go team leader Russ Cox announced the official release of Go 1.18 Beta1.

Go 1.18 Beta1 is the first preview version that includes support for generic code using parameterized types.

Go officials state that generics represent the most important change since Go 1 and the biggest single-language change they have made.

They caution that new large features often reveal bugs, and they do not want generics to be an exception; users should adopt them carefully. Some subtle cases, such as recursive generic types, are postponed to future releases.

Early adopters are encouraged to try generics for suitable use cases; a short tutorial is available, and a talk was given at GopherCon. The Go Playground’s dev branch mode can also be used.

Go 1.18 Beta1 includes the following enhancements:

Built‑in support for fuzz testing to automatically find inputs that cause crashes or invalid results.

A new “Go workspace mode” that lets users work with multiple Go modules simultaneously, useful for large projects.

An extended go version -m command that records compiler flags and other build details; programs can query their own build info via debug.ReadBuildInfo, and a new debug/buildinfo package can read build info from other binaries, forming a basis for SBOM tools.

The register‑based calling convention introduced in Go 1.17 for x86‑64 is now extended to ARM64 and PPC64, delivering about a 20% speed boost.

For more details, see the official blog: https://go.dev/blog/go1.18beta1

Neo: A Go Web Development Framework

On December 13, the open‑source Neo framework for Go was officially released, aiming to provide high development efficiency and quality.

Project site: https://ivpusic.github.io/neo/

API documentation: https://godoc.org/github.com/ivpusic/neo

Installation

# framework
go get github.com/ivpusic/neo

# CLI tool
go get github.com/ivpusic/neo/cmd/neo

Creating a Neo application

neo new myapp
cd myapp

Example code

package main
import (
    "github.com/ivpusic/neo"
)

func main() {
    app := neo.App()
    app.Get("/", func(ctx *neo.Ctx) (int, error) {
        return 200, ctx.Res.Text("I am Neo Programmer")
    })
    app.Start()
}

Run the application

neo run main.go

The Neo framework is released under the MIT license; its GitHub repository is https://github.com/ivpusic/neo.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

GoBeta ReleaseNeo Framework
21CTO
Written by

21CTO

21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.