Sherpa is a Go library for creating a sherpa API.

This library makes it trivial to export Go functions as a sherap API with an http.Handler.

Your API will automatically be documented: cmd/sherpadoc reads your Go source, and exports function and type comments as API documentation.

See the documentation.


A public sherpa API:

That web application is sherpaweb. It shows documentation for any sherpa API but also includes an API called Example for demo purposes.

Ding is a more elaborate web application built with this library.


Written by Mechiel Lukkien, Bug fixes, patches, comments are welcome. MIT-licensed, see LICENSE. cmd/sherpadoc/gopath.go originates from the Go project, see LICENSE-go for its BSD-style license.


  • finish the type information. perhaps add more specific types (int64, int32, and unsigned variants, instead of just "int").
  • better error messages in sherpadoc
  • handler: write tests
  • sherpadoc: write tests
  • client: write tests
  • sherpadoc: find out which go constructs people want to use that aren't yet implemented by sherpadoc

  • when reading types from other packages (imported packages), we only look at GOPATH. vendor and modules are not taking into account, but we should.