Automaticly provide RESTful API for gRPC

lcp0578 回复了问题 • 3 人关注 • 2 个回复 • 166 次浏览 • 1 天前 • 来自相关话题

gmcache一个用go写的分布式缓存,类似memcached

stirlingx 发表了文章 • 0 个评论 • 111 次浏览 • 3 天前 • 来自相关话题

主要是用来练手的,欢迎大家仍砖头

  • 使用ectd做服务发现
  • broker作为代理服务器,对client的请求做转发,用一致性hash算法对key映射到后端gmcache。

项目地... 查看全部

主要是用来练手的,欢迎大家仍砖头



  • 使用ectd做服务发现

  • broker作为代理服务器,对client的请求做转发,用一致性hash算法对key映射到后端gmcache。


项目地址:


https://github.com/liyue201/gmcache


Gmcache


A distributed key/value memory cache written in go.


Features



  • Light weight

  • Pure golang

  • Supports set,get and delete

  • Supports grpc and http protocols

  • Scalable architecture


Architecture


gmcache-cluster

beegoapix - beego api extension

luffyke 发表了文章 • 0 个评论 • 73 次浏览 • 4 天前 • 来自相关话题

beegoapix

beegoapix is beego api extension framework, to develop more faster api service.

Install

查看全部
					

beegoapix


beegoapix is beego api extension framework, to develop more faster api service.


Install


go get github.com/luffyke/beegoapix

Function



  1. accept all client http request, reflect and call sub-controller to handle request(v0.1)

  2. log request and response(v0.1)

  3. error handling(v0.1)

  4. version control(v0.2)

  5. priviledge(v0.2)

  6. combine controller

  7. cache(etag)


Demo


make sure have installed beego and bee tool.


new api project


bee api hello

edit router.go


package routers

import (
"hello/controllers"
"github.com/luffyke/beegoapix"
)

func init() {
beegoapix.Router()
// add your business path mapping
beegoapix.RegController("app", controllers.AppController{})
}

write your business controller


package controllers

import (
"github.com/luffyke/beegoapix/api"

"github.com/astaxie/beego/logs"
)

type AppController struct {
}

func (this *AppController) CheckVersion(request api.ApiRequest) (response api.ApiResponse) {
logs.Debug(request.Id)
logs.Debug(request.Data["versionCode"])
response.Data = make(map[string]interface{})
response.Data["versionName"] = "version name 1.0"
return response
}

run the server


bee run

post the request


http://localhost:8080/v1/app/check-version

request


{
"id":"12345678",
"sign":"abc",
"client":{
"caller":"app",
"os":"android",
"ver":"1.0",
"platform":"android",
"ch":"offical",
"ex":{
"imei":"1a2b3c"
}
},
"page":{
"page":1,
"size":10
},
"user":{
"uid":"123",
"sid":"abc"
},
"data":{
"versionCode":"v1.0.0"
}
}

response

{
"state": {
"code": 0,
"msg": ""
},
"data": {
"versionName": "version name 1.0"
}
}

Android demo


please reference to project beegoapix-android-demo

力争做最好的go模板引擎

Lime 发表了文章 • 2 个评论 • 259 次浏览 • 5 天前 • 来自相关话题

一直觉得 go 没有一个好用的模板引擎,渲染 html 的时候特别痛苦,总有一种有力气却使不出来的感觉。

模板引擎一般有两种实现方式,一种是解析 html 语法树,然后根据一定的规则动态的拼接,另外一种是把模板预先生成代码,渲染模板时调用相... 查看全部

一直觉得 go 没有一个好用的模板引擎,渲染 html 的时候特别痛苦,总有一种有力气却使不出来的感觉。


模板引擎一般有两种实现方式,一种是解析 html 语法树,然后根据一定的规则动态的拼接,另外一种是把模板预先生成代码,渲染模板时调用相关的函数即可。


Go 内置的 template 包使用的是第一种方式,不过很多开源项目使用的是第二种方式,比如 quicktemplate 、 gorazor 等。不过这两个可能由于设计的问题,都没有实现模板继承和模板 include ,而且有的语法个人觉得不是太优雅。


所以我想要一个 go 模板,它具备以下特性:


原生的 golang 语法



  • 支持模板植入代码

  • 支持模板继承和 include

  • 高性能

  • 语法简单、优雅

  • 自动编译


基于以上,实现了 hero 模板引擎,用过 nodejs EJS 模板引擎的童鞋应该很容易上手。 hero 目前已经在 http://bthub.io 线上使用。


Github: https://github.com/shiyanhui/hero


Gophers ,欢迎 issues 和 pr ,让我们一起共同打造 golang 最好的模板引擎!

supervisor的client api

foolbread 发表了文章 • 4 个评论 • 87 次浏览 • 6 天前 • 来自相关话题

最近项目需要,自己利用supervisor提供的接口,封装了一个golang的client api

项目地址:https://githu...

go-workerpool 支持每分钟百万并发的抽象原型

qianguozheng 发表了文章 • 0 个评论 • 128 次浏览 • 2017-01-14 23:15 • 来自相关话题

使用 Golang 实现了一个简单的消费者模式, 主要解决每分钟百万请求的问题。

基本原理:建立固定的工作线程去缓冲池中取数据处理。以此来控制固定时间内处理的请求数

源码地址

查看全部

使用 Golang 实现了一个简单的消费者模式, 主要解决每分钟百万请求的问题。


基本原理:建立固定的工作线程去缓冲池中取数据处理。以此来控制固定时间内处理的请求数


源码地址


https://github.com/qianguozheng/go-workerpool.git


用途



  1. 控制goroutine的数目

  2. 简练模型


实际使用场景及灵感来源


http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/

Grumpy:Google开源神器 Go上运行Python

wwdyy 发表了文章 • 0 个评论 • 319 次浏览 • 2017-01-07 13:46 • 来自相关话题

Grumpy是一个Python to Go的源码源代码翻译编译器和运行时,旨在取代CPython 2.7。

关键区别在于,Grumpy是将Python源码编译为Go源代码,然后将其编译为本地代码,而不是字节码。这也就意味着Grumpy没... 查看全部

Grumpy是一个Python to Go的源码源代码翻译编译器和运行时,旨在取代CPython 2.7。


关键区别在于,Grumpy是将Python源码编译为Go源代码,然后将其编译为本地代码,而不是字节码。这也就意味着Grumpy没有虚拟机(VM)。编译好的Go源码是对Grumpy运行时的一系列调用,一个Go库服务于具有相似目的的Python C API(尽管不直接支持C API)。


运行Grumpy程序


方法1:grumprun:


执行Grumpy程序的最简单方法就是使用make run,它封装了一个名为grumprun的shell脚本,它将stdin上的Python代码基于Grumpy构建和运行。以下所有的命令都假设从Grumpy源码根目录开始运行:


echo "print 'hello, world'" | make run

方法2:grumpc


对于复杂一些的程序,你需要使用grumpc把Python代码编译成Go源码以后再进行构建。首先,写一个简单的.py脚本;


echo 'print "hello, world"' > hello.py

接下来,创建工具链并导出一些使工具链工作的环境变量:


 make

export GOPATH=$PWD/build

export PYTHONPATH=$PWD/build/lib/python2.7/site-packages

最后,编译Python脚本并从中构建一个二进制文件:


tools/grumpc hello.py > hello.go

go build -o hello hello.go

好了,现在执行./hello二进制到你的核心内容里即可。


关于Grumpy更多内容,大家可以访问其源码托管地址:https://github.com/google/grumpy

sql转es dsl的小工具

taowen 回复了问题 • 3 人关注 • 1 个回复 • 251 次浏览 • 2017-01-07 07:09 • 来自相关话题

Thinkgo 一款支持参数绑定与自动化API文档web框架

changjixiong 回复了问题 • 4 人关注 • 1 个回复 • 216 次浏览 • 2017-01-06 19:03 • 来自相关话题

分享一个自己写的微信terminal版本终端,初步的功能完成

liushuchun 发表了文章 • 6 个评论 • 260 次浏览 • 2017-01-06 14:13 • 来自相关话题

链接地址:https://github.com/liushuchun/wechatcmd golang新手,代码还有很多不规范的地方,希望多帮忙s... 查看全部

链接地址:https://github.com/liushuchun/wechatcmd
golang新手,代码还有很多不规范的地方,希望多帮忙star,让我更有动力继续完善。
效果图
聊天动态图

Gitea 发布 1.0.1版本

lunny 发表了文章 • 0 个评论 • 165 次浏览 • 2017-01-05 22:52 • 来自相关话题

很高兴的宣布我们今天发布了Bug修订版 Gitea v1.0.1。这个版本我们合并了 查看全部

很高兴的宣布我们今天发布了Bug修订版 Gitea v1.0.1。这个版本我们合并了 9 个提交请求。你可以从 下载页面 下载二进制文件,注意选择适合你的平台。更多详细安装信息请参见 安装向导.


变更日志



  • BUGFIXES

    • Fixed localized MIN_PASSWORD_LENGTH #501

    • Fixed 500 error on organization delete #507

    • Ignore empty wiki repo on migrate #544

    • Proper check access for forking #563

    • Fix SSH domain on installer #506

    • Fix missing data rows on admin UI #580

    • Do not delete tags with releases by default #579

    • Fix missing session config data on admin UI #578

    • Properly show the version within footer on the UI #593


数人云Mesos调度器Swan v0.2最新功能演示

数人云 发表了文章 • 0 个评论 • 139 次浏览 • 2016-12-29 11:00 • 来自相关话题

数人云Mesos调度器Swan开源已经一个月啦,在社区和大家的共同呵护下成长了许多。小数带来了Swan v0.2的新版本,添加了很多新功能,工程师为了... 查看全部

数人云Mesos调度器Swan开源已经一个月啦,在社区和大家的共同呵护下成长了许多。小数带来了Swan v0.2的新版本,添加了很多新功能,工程师为了大家更好地了解Swan的新功能,为大家提供了录屏,欢迎收看!


腾讯地址:
https://v.qq.com/x/page/p0358dzspz5.html


Fork me on GitHub!
https://github.com/Dataman-Cloud/swan


关于数人云Mesos调度器Swan


Swan是基于Mesos Restful API编写的应用调度框架,可以帮助用户轻松发布应用,实现应用的滚动更新,并根据用户指定的策略做应用的健康检测和故障转移。

推荐一发梯子工具kone

raindylong 发表了文章 • 2 个评论 • 313 次浏览 • 2016-12-20 16:31 • 来自相关话题

地址:https://github.com/xjdrew/kone (DNS欺骗+NAT2proxy工具,有webui可看统计信息)

利益相关:我司@...

地址:https://github.com/xjdrew/kone
(DNS欺骗+NAT2proxy工具,有webui可看统计信息)


利益相关:我司@xjdrew老湿的作品。。。

【goxel】Go 版的 axel 小工具

山羊wayne 发表了文章 • 0 个评论 • 221 次浏览 • 2016-12-20 14:21 • 来自相关话题

之前练手写的一个小工具 goxel,类似于 axel,如果你感觉对你有用或者还不错,不要吝啬你的 Star 哈,当然有任何问题或者改进也请告诉我... 查看全部

之前练手写的一个小工具 goxel,类似于 axel,如果你感觉对你有用或者还不错,不要吝啬你的 Star 哈,当然有任何问题或者改进也请告诉我。


goxel




Description


goxel like axel tool

Installation


$ go get github.com/WayneZhouChina/goxel

Usage


goxel [options...] <url>

Options:
-n Numbers of blocks to run(must).
-H Add header string.
-v More status information.
-o Specify local output file(must).
-h Help information.
-V Version information.
-cpus Number of used cpu cores(Default is current machine cores).

Example:


goxel -n 10 -o outfile http://xxx.com

gbb-自己写的golang辅助编译工具(不知道这么描述是否确切),请大伙给点建议!

voidint 发表了文章 • 1 个评论 • 175 次浏览 • 2016-12-18 22:14 • 来自相关话题