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.
-
geo-golang
Go Library to access Google Maps, MapQuest, Nominatim, OpenCage, HERE, Bing, and Mapbox geocoding / reverse geocoding APIs. -
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. -
go-tgbot
Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. -
mixpanel
Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. -
amazon-product-advertising-api
Go Client Library for Amazon Product Advertising API
Get performance insights in less than 4 minutes
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.