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.
-
go-openai
OpenAI ChatGPT, GPT-3, GPT-4, DALL·E, Whisper API wrapper for Go -
goamz
Popular fork of goamz which adds some missing API calls to certain packages. -
webhooks
:fishing_pole_and_fish: Webhook receiver for GitHub, Bitbucket, GitLab, Gogs -
githubql
Package githubv4 is a client library for accessing GitHub GraphQL API v4 (https://docs.github.com/en/graphql). -
geo-golang
Go library to access geocoding and reverse geocoding APIs -
twitter-scraper
Scrape the Twitter Frontend API without authentication with Golang. -
lark
Feishu(飞书)/Lark Open API Go SDK, Support ALL Open API and Event Callback. -
openaigo
OpenAI GPT3/3.5 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. -
hipchat (xmpp)
A golang package to communicate with HipChat over XMPP -
clarifai
DEPRECATED: please use https://github.com/Clarifai/clarifai-go-grpc -
go-lark
An easy-to-use SDK for Feishu and Lark Open Platform (Messaging API only) -
hipchat
This project implements a Go client library for the Hipchat API. -
simples3
Simple no frills AWS S3 Golang Library using REST with V4 Signing (without AWS Go SDK) -
go-tgbot
Golang telegram bot API wrapper, session-based router and middleware -
cachet
Go(lang) client library for Cachet (open source status page system). -
go-postman-collection
Go module to work with Postman Collections
Static code analysis for 29 languages.
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.