go-trending alternatives and similar packages
Based on the "Third-party APIs" category.
Alternatively, view go-trending alternatives based on common mentions on social networks and blogs.
-
aws-sdk-go
AWS SDK for the Go programming language (In Maintenance Mode, End-of-Life on 07/31/2025). The AWS SDK for Go v2 is available here: https://github.com/aws/aws-sdk-go-v2 -
githubql
Package githubv4 is a client library for accessing GitHub GraphQL API v4 (https://docs.github.com/en/graphql). -
openaigo
OpenAI GPT3/3.5 and GPT4 ChatGPT API Client Library for Go, simple, less dependencies, and well-tested -
gostorm
GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. -
ynab
Go client for the YNAB API. Unofficial. It covers 100% of the resources made available by the YNAB API.
CodeRabbit: AI Code Reviews for Developers

Do you think we are missing an alternative of go-trending or a related project?
README
go-trending
A package to retrieve trending repositories and developers from Github written in golang.
[trending package showcase](./img/go-trending-shrinked.png "trending package showcase")
This package were inspired by rochefort/git-trend (Ruby) and sheharyarn/github-trending (Ruby).
Features
- Get trending repositories
- Get trending developers
- Get trending languages
- Get all programming languages known by GitHub
- Filtering by time and (programming) language
- Support for GitHub Enterprise
Installation
It is go gettable
$ go get github.com/andygrunwald/go-trending
(optional) to run unit / example tests:
$ cd $GOPATH/src/github.com/andygrunwald/go-trending
$ go test -v
API
Please have a look at the GoDoc documentation for a detailed API description.
Examples
Further a few examples how the API can be used. A few more examples are available in the GoDoc examples section.
List trending repositories of today for all languages
package main
import (
"fmt"
"github.com/andygrunwald/go-trending"
"log"
)
func main() {
trend := trending.NewTrending()
// Show projects of today
projects, err := trend.GetProjects(trending.TimeToday, "")
if err != nil {
log.Fatal(err)
}
for index, project := range projects {
no := index + 1
if len(project.Language) > 0 {
fmt.Printf("%d: %s (written in %s with %d ★ )\n", no, project.Name, project.Language, project.Stars)
} else {
fmt.Printf("%d: %s (with %d ★ )\n", no, project.Name, project.Stars)
}
}
}
List trending repositories of this week for golang
package main
import (
"fmt"
"github.com/andygrunwald/go-trending"
"log"
)
func main() {
trend := trending.NewTrending()
// Show projects of today
projects, err := trend.GetProjects(trending.TimeWeek, "go")
if err != nil {
log.Fatal(err)
}
for index, project := range projects {
no := index + 1
if len(project.Language) > 0 {
fmt.Printf("%d: %s (written in %s with %d ★ )\n", no, project.Name, project.Language, project.Stars)
} else {
fmt.Printf("%d: %s (with %d ★ )\n", no, project.Name, project.Stars)
}
}
}
List trending developers of this month for Swift
package main
import (
"fmt"
"github.com/andygrunwald/go-trending"
"log"
)
func main() {
trend := trending.NewTrending()
developers, err := trend.GetDevelopers(trending.TimeMonth, "swift")
if err != nil {
log.Fatal(err)
}
for index, developer := range developers {
no := index + 1
fmt.Printf("%d: %s (%s)\n", no, developer.DisplayName, developer.FullName)
}
}
List available languages
package main
import (
"fmt"
"github.com/andygrunwald/go-trending"
"log"
)
func main() {
trend := trending.NewTrending()
// Show languages
languages, err := trend.GetLanguages()
if err != nil {
log.Fatal(err)
}
for index, language := range languages {
no := index + 1
fmt.Printf("%d: %s (%s)\n", no, language.Name, language.URLName)
}
}
Implementations
License
This project is released under the terms of the MIT license.
*Note that all licence references and agreements mentioned in the go-trending README section above
are relevant to that project's source code only.