hackstoic / golang-open-source-projects Goto Github PK
View Code? Open in Web Editor NEW为互联网IT人打造的中文版awesome-go
为互联网IT人打造的中文版awesome-go
istio 是一个使用 Go 语言编写的 Service Mesh 项目.
minio怎么没有
顺便推荐个go微服务项目 https://gitee.com/cristiane/micro-mall-api
My account was compromised, as a result many spam issues got created across multiple repos. I am deleting all such issues. Please check my tweet: https://x.com/arghyac35/status/1729721954909684064?s=20
感谢作者的推荐,本人的Pholcus、Lessgo、ThinkGo项目。
由于很多人听到ThinkGO的名字,总是联想到ThinkPHP,进而认为两者设计相同。其实不然。因此已经更名为Faygo。请悉知。
https://github.com/henrylee2cn/faygo
Faygo 是一款快速、简洁的Go Web框架,可用极少的代码开发出高性能的Web应用程序(尤其是API接口)。只需定义 struct Handler,Faygo 就能自动绑定、验证请求参数并生成在线API文档。
“Orivil 是由 golang 开发的全新 web 框架”
没有文档、没有官网、两年没有commit? 由 golang 开发?23 star?
本人从事十年年大数据相关工作,做过用户增长,BI,大数据中台,知识图谱,AI中台,擅长大数据AI相关技术栈。在CSDN输出很多专栏,是CSDN博客专家,CSDN大数据领域优质创作者,2018年参与共建WeDataSphere开源社区,社区属性是数据相关综合社区,共建过DataSphereStudio(开发管理集成框架),Exchangis(数据交换工具),Streamis(流式应用开发管理系统),Apache Linkis (计算中间件) 。个人发起SolidUI数据可视化社区。Apache Asia 2022 讲师 ,Hadoop Meetup 2022 讲师,WeDataSphere Meetup 2022讲师。Apache Linkis Committer , EXIN DPO (数据保护官)。
2023年2月开始创业,全职运营SolidUI。
一句话生成任何图形。
随着文本生成图像的语言模型兴起,SolidUI想帮人们快速构建可视化工具,可视化内容包括2D,3D,3D场景,从而快速构三维数据演示场景。SolidUI 是一个创新的项目,旨在将自然语言处理(NLP)与计算机图形学相结合,实现文生图功能。通过构建自研的文生图语言模型,SolidUI 利用 RLHF (Reinforcement Learning Human Feedback) 流程实现从文本描述到图形生成的过程。
SolidUI Gitee https://gitee.com/CloudOrc/SolidUI
SolidUI GitHub https://github.com/CloudOrc/SolidUI
SolidUI 官网地址 https://cloudorc.github.io/SolidUI-Website/
Discord https://discord.gg/NGRNu2mGeQ
SolidUI v0.3.0 发版文章 https://mp.weixin.qq.com/s/KEFseiQJgK87zvpslhAAXw
SolidUI v0.3.0 概念视频 https://www.bilibili.com/video/BV1GV411A7Wn/
SolidUI v0.3.0 教程视频 https://www.bilibili.com/video/BV1xh4y1e7j6/
SolidUI 演示环境 http://www.solidui.top/ admin/admin
niubility
您好,hackstoic:
首先祝您新年快乐,非常冒昧的联系您。
我是HelloGitHub项目的发起者:削微寒😄,该项目至今已经发布了 10 期。内容主要是收集GitHub上的优秀、好玩、容易上手的开源项目。希望可以帮助编程入门的小伙伴,找到自己的兴趣,从而提高自己的编程能力。因为我坚信:
兴趣是最好的老师
本次联系您是想:邀请您加入到该项目,共同编写,因为偶然的机会发现了您的这个项目,集合了 Golang 语言的很多优秀的项目。
期待您的回复,我的邮箱:NTk1NjY2MzY3QHFxLmNvbQ==(base64,您懂的。否则垃圾邮件太多😅)
goLeaf - leaf发号器
【未来服务器端编程语言】最全空降golang资料补给包(满血战斗),包含文章,书籍,作者论文,理论分析,开源框架,云原生,大佬视频,大厂实战分享ppt
https://github.com/0voice/Introduction-to-Golang
docker 这个有收集么
Gozz 是一个十分强大的注解代码生成工具
这是笔者在以往工作中在多个团队成功落地,已经使用了4年以上的成熟方案,最近终于有时间进行开源。
这里搬运一个 官方文档 提供的示例二
比如下面是一个很常见的应用 基本层级代码
package overview02
import (
"context"
"database/sql"
"fmt"
"net/http"
"time"
"github.com/go-redis/redis/v8"
)
type (
// root config for unmarshal config file
Config struct {
Server ServerConfig `yaml:"server"`
Sql SqlConfig `yaml:"sql"`
Redis RedisConfig `yaml:"redis"`
}
// http server config
ServerConfig struct {
Addr string `yaml:"addr"`
}
// sql config
SqlConfig struct {
Dsn string `yaml:"dsn"`
}
// redis config
RedisConfig struct {
Host string `yaml:"host"`
Port string `yaml:"port"`
}
)
// provide http server from server config
func ProvideHttpServer(config ServerConfig) *http.Server {
return &http.Server{
Addr: config.Addr,
}
}
// interface of sql connection
type SqlConn interface {
QueryContext(ctx context.Context, statement string, args ...interface{}) (rows *sql.Rows, err error)
}
// interface of key value store
type Store interface {
Get(ctx context.Context, key string) (value []byte, err error)
Set(ctx context.Context, key string, value []byte, exp time.Duration) (err error)
}
// provide sql connection from sql config
func ProvideSql(config SqlConfig) (*sql.DB, error) {
return sql.Open("mysql", config.Dsn)
}
// provide kv store from redis config
func ProvideRedisStore(config RedisConfig) (*redis.Client, error) {
rdb := redis.NewClient(&redis.Options{
Addr: fmt.Sprintf("%s:%s", config.Host, config.Port),
})
return rdb, nil
}
type RedisStore struct {
redis.Cmdable
}
func (s RedisStore) Set(ctx context.Context, key string, value []byte, exp time.Duration) (err error) {
return s.Cmdable.Set(ctx, key, value, exp).Err()
}
func (s RedisStore) Get(ctx context.Context, key string) (value []byte, err error) {
return s.Cmdable.Get(ctx, key).Bytes()
}
// biz service handler
type ServiceHandler interface {
GetInt(ctx context.Context) (int, error)
GetString(ctx context.Context) (string, error)
}
// implement of server handler
type ServerHandlerImpl struct {
Sql SqlConn
Store Store
}
func (impl *ServerHandlerImpl) GetInt(ctx context.Context) (int, error) {
panic("not implemented")
}
func (impl *ServerHandlerImpl) GetString(ctx context.Context) (string, error) {
panic("not implemented")
}
// the entry of application
type Application interface {
Run()
}
// web application implement
type application struct {
Server *http.Server
Handler ServiceHandler
}
func (application application) Run() {
panic("not implemented")
}
我们只需要在对象的注释中加上一些注解 然后运行 gozz 工具
注意 +zz:wire
这样的声明
package overview02
import (
"context"
"database/sql"
"fmt"
"net/http"
"time"
"github.com/go-redis/redis/v8"
)
//go:generate gozz run -p "wire" ./
type (
// root config for unmarshal config file
// +zz:wire:field=*
Config struct {
Server ServerConfig `yaml:"server"`
Sql SqlConfig `yaml:"sql"`
Redis RedisConfig `yaml:"redis"`
}
// http server config
ServerConfig struct {
Addr string `yaml:"addr"`
}
// sql config
SqlConfig struct {
Dsn string `yaml:"dsn"`
}
// redis config
RedisConfig struct {
Host string `yaml:"host"`
Port string `yaml:"port"`
}
)
// provide http server from server config
// +zz:wire
func ProvideHttpServer(config ServerConfig) *http.Server {
return &http.Server{
Addr: config.Addr,
}
}
// interface of sql connection
type SqlConn interface {
QueryContext(ctx context.Context, statement string, args ...interface{}) (rows *sql.Rows, err error)
}
// interface of key value store
type Store interface {
Get(ctx context.Context, key string) (value []byte, err error)
Set(ctx context.Context, key string, value []byte, exp time.Duration) (err error)
}
// provide sql connection from sql config
// +zz:wire:bind=SqlConn
func ProvideSql(config SqlConfig) (*sql.DB, error) {
return sql.Open("mysql", config.Dsn)
}
// provide kv store from redis config
// +zz:wire:bind=redis.Cmdable
func ProvideRedisStore(config RedisConfig) (*redis.Client, error) {
rdb := redis.NewClient(&redis.Options{
Addr: fmt.Sprintf("%s:%s", config.Host, config.Port),
})
return rdb, nil
}
// +zz:wire:bind=Store
type RedisStore struct {
redis.Cmdable
}
func (s RedisStore) Set(ctx context.Context, key string, value []byte, exp time.Duration) (err error) {
return s.Cmdable.Set(ctx, key, value, exp).Err()
}
func (s RedisStore) Get(ctx context.Context, key string) (value []byte, err error) {
return s.Cmdable.Get(ctx, key).Bytes()
}
// biz service handler
type ServiceHandler interface {
GetInt(ctx context.Context) (int, error)
GetString(ctx context.Context) (string, error)
}
// implement of server handler
// +zz:wire:bind=ServiceHandler:aop
type ServerHandlerImpl struct {
Sql SqlConn
Store Store
}
func (impl *ServerHandlerImpl) GetInt(ctx context.Context) (int, error) {
panic("not implemented")
}
func (impl *ServerHandlerImpl) GetString(ctx context.Context) (string, error) {
panic("not implemented")
}
// the entry of application
// +zz:wire:inject=./:param=*Config
type Application interface {
Run()
}
// web application implement
// +zz:wire:bind=Application
type application struct {
Server *http.Server
Handler ServiceHandler
}
func (application application) Run() {
panic("not implemented")
}
你会发现完整的依赖注入代码就被生成好了:
```go
// Code generated by Wire. DO NOT EDIT.
//go:generate go run github.com/google/wire/cmd/wire
//+build !wireinject
package overview02
// Injectors from wire_zinject.go:
// github.com/go-zing/gozz-doc-examples/overview02.Application
func Initialize_Application(config *Config) (Application, func(), error) {
serverConfig := config.Server
server := ProvideHttpServer(serverConfig)
sqlConfig := config.Sql
db, err := ProvideSql(sqlConfig)
if err != nil {
return nil, nil, err
}
redisConfig := config.Redis
client, err := ProvideRedisStore(redisConfig)
if err != nil {
return nil, nil, err
}
redisStore := &RedisStore{
Cmdable: client,
}
serverHandlerImpl := &ServerHandlerImpl{
Sql: db,
Store: redisStore,
}
overview02_impl_aop_ServiceHandler := &_impl_aop_ServiceHandler{
_aop_ServiceHandler: serverHandlerImpl,
}
overview02Application := &application{
Server: server,
Handler: overview02_impl_aop_ServiceHandler,
}
return overview02Application, func() {
}, nil
}
而且还可以生成自动化注入的 AOP 代理:
// Code generated by gozz:wire github.com/go-zing/gozz. DO NOT EDIT.
package overview02
import (
"context"
)
type _aop_interceptor interface {
Intercept(v interface{}, name string, params, results []interface{}) (func(), bool)
}
// ServiceHandler
type (
_aop_ServiceHandler ServiceHandler
_impl_aop_ServiceHandler struct{ _aop_ServiceHandler }
)
func (i _impl_aop_ServiceHandler) GetInt(p0 context.Context) (r0 int, r1 error) {
if t, x := i._aop_ServiceHandler.(_aop_interceptor); x {
if up, ok := t.Intercept(i._aop_ServiceHandler, "GetInt",
[]interface{}{&p0},
[]interface{}{&r0, &r1},
); up != nil {
defer up()
} else if !ok {
return
}
}
return i._aop_ServiceHandler.GetInt(p0)
}
func (i _impl_aop_ServiceHandler) GetString(p0 context.Context) (r0 string, r1 error) {
if t, x := i._aop_ServiceHandler.(_aop_interceptor); x {
if up, ok := t.Intercept(i._aop_ServiceHandler, "GetString",
[]interface{}{&p0},
[]interface{}{&r0, &r1},
); up != nil {
defer up()
} else if !ok {
return
}
}
return i._aop_ServiceHandler.GetString(p0)
}
Gozz 还提供了运行时库的工具 ,可以协助我们对对象进行运行时分析,并输出架构图
LotusDB 是一个结合 LSM 和 B+ 树的 kv 数据库,简洁优雅,易于上手使用和学习。
Github 地址:https://github.com/flower-corp/lotusdb
无法正常跳转到ci/cd板块
同时推荐一个web框架,国内的 goframe.org
2013年的项目,Github 仓库地址:https://github.com/grafana/grafana
Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB.
请问有没有推荐的Go的爬虫框架
Guora 🖖🏻 A self-hosted Quora like web application written in Go 基于 Golang 类似知乎的私有部署问答应用 包含问答、评论、点赞、管理后台等功能
Open-IM是由前微信技术专家打造的开源的即时通讯组件。Open-IM包括IM服务端和客户端SDK,实现了高性能、轻量级、易扩展等重要特性。开发者通过集成Open-IM组件,并私有化部署服务端,可以将即时通讯、实时网络能力快速集成到自身应用中,并确保业务数据的安全性和私密性。
开发文档: https://doc.rentsoft.cn/
github地址:https://github.com/OpenIMSDK/Open-IM-Server
qq群:262688488
github: https://github.com/q191201771/lal
文档: https://pengrl.com/lal
感谢。
https://github.com/bndr/gojenkins
goJenkins库
属于CI/CD模块
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.