Skip to content

wade-p/go-nghttp2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-nghttp2

The experimental project to use nghttp2 C library from Go using cgo. Currently, server implementation is available.

How to run demo server

First, build and install nghttp2. Do git clone https://github.com/tatsuhiro-t/go-nghttp2.git and enter demo directory. Then run go run demo.go. It fires up HTTP/2 capable https server listening at port 3000. It also supports HTTP/1 connection.

nghttp2.Server only supports https HTTP/2 connection right now.

Example

package main

import (
    "github.com/tatsuhiro-t/go-nghttp2"
    "io"
    "log"
    "net/http"
)

func main() {
    var srv http.Server
    srv.Addr = "localhost:3000"

    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        io.WriteString(w, "hello world")
    })
    // Set up srv so that if HTTP/2 is negotiated in TLS NPN,
    // connection is intercepted by nghttp2.Server.
    nghttp2.ConfigureServer(&srv, &nghttp2.Server{})

    log.Printf("Listening on " + srv.Addr)
    log.Fatal(srv.ListenAndServeTLS("server.crt", "server.key"))
}

About

HTTP/2 implementation in golang using nghttp2 C library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 84.1%
  • C 15.9%