breeze-generator

所属分类:自动编程
开发工具:GO
文件大小:43KB
下载次数:0
上传日期:2022-05-07 01:24:03
上 传 者sh-1993
说明:  基于微风模式的不同编程语言的代码生成
(generate code for different programming language based on the breeze schema)

文件列表:
.travis.yml (381, 2022-05-07)
LICENSE (569, 2022-05-07)
core (0, 2022-05-07)
core\breeze.go (5801, 2022-05-07)
doc.go (716, 2022-05-07)
generator.go (10876, 2022-05-07)
generator_test.go (2815, 2022-05-07)
go.mod (336, 2022-05-07)
http (0, 2022-05-07)
http\httpHandler.go (1703, 2022-05-07)
main (0, 2022-05-07)
main\breezec (0, 2022-05-07)
main\breezec\main.go (1859, 2022-05-07)
main\demo.breeze (1525, 2022-05-07)
main\java.math.BigDecimal.breeze (136, 2022-05-07)
main\java.math.BigInteger.breeze (136, 2022-05-07)
main\java.sql.Timestamp.breeze (122, 2022-05-07)
main\java.util.Date.breeze (115, 2022-05-07)
main\test.go (1352, 2022-05-07)
main\testmsg.breeze (841, 2022-05-07)
main\tests (0, 2022-05-07)
main\tests\java.util.Date.breeze (118, 2022-05-07)
main\tests\java.util.Demo.breeze (2358, 2022-05-07)
main\tests\java1.util.Date.breeze (120, 2022-05-07)
main\tests\java2.util.Date.breeze (163, 2022-05-07)
motan (0, 2022-05-07)
motan\motanConfig.go (22860, 2022-05-07)
parsers (0, 2022-05-07)
parsers\breezeParser.go (11249, 2022-05-07)
parsers\parser.go (545, 2022-05-07)
templates (0, 2022-05-07)
templates\Template.go (4589, 2022-05-07)
templates\cppTemplate.go (11017, 2022-05-07)
templates\goTemplate.go (25854, 2022-05-07)
templates\javaTemplate.go (15202, 2022-05-07)
templates\luaTemplate.go (8533, 2022-05-07)
... ...

# Breeze-Generator [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/weibreeze/breeze-generator/blob/master/LICENSE) [![Build Status](https://img.shields.io/travis/weibreeze/breeze-generator/master.svg?label=Build)](https://travis-ci.org/weibreeze/breeze-generator) [![codecov](https://codecov.io/gh/weibreeze/breeze-generator/branch/master/graph/badge.svg)](https://codecov.io/gh/weibreeze/breeze-generator) [![GoDoc](https://godoc.org/github.com/weibreeze/breeze-generator?status.svg&style=flat)](https://godoc.org/github.com/weibreeze/breeze-generator) [![Go Report Card](https://goreportcard.com/badge/github.com/weibreeze/breeze-generator)](https://goreportcard.com/report/github.com/weibreeze/breeze-generator) # 概述 根据Breeze Schema生成各种语言的Breeze Message对象类。目前支持Java、PHP、Golang、C++。 # 快速入门 生成代码的样例如下: ```go func testGenerateCode() { path := "./main" // path can be a dir or a file config := &generator.Config{WritePath: "./autoGenerate", CodeTemplates: "php, go, java", Options: make(map[string]string)} result, err := generator.GeneratePath(path, config) // parse schema and generate code fmt.Printf("%v, %v\n", result, err) } ``` 其中Config用来配置Schema解析和代码生成时的配置: * `WritePath`用来指定生成代码的输出目录。 * `CodeTemplates`用来指定生成代码的语言,多种语言直接使用逗号分隔。如果需要对所有语言都生成,则可以使用`all`作为参数值。 * `Options`用来指定额外参数,例如针对不同语言生成模板的参数,比如`templates.GoPackagePrefix`用来指定go语言生成时统一的包前缀等。 具体代码可以参考[main/test.go](https://github.com/weibreeze/breeze-generator/blob/master/main/test.go) ## 做为Breeze生成服务器 可以使用`GenerateCodeHandler`做为http server来为Breeze的[intellij插件](https://github.com/weibreeze/breeze-idea-plugin) 提供生成服务。样例代码如下: ```go func main() { port := 8899 path := "/generate_code" http.Handle(path, &breezeHttp.GenerateCodeHandler{}) http.ListenAndServe(":"+strconv.Itoa(port), nil) select {} } ``` ## 转换protobuf为breeze 生成器可以转换protobuf的.proto描述文件为breeze的.breeze描述文件。 但是有以下限制规则: - 类型映射 double -> float***, float -> float32, [uint32, uint***] -> int***, sint32 -> int32, sint*** -> int***, [fixed32, fixed***] -> int***, sfixed32 -> int32, sfixed*** -> int*** - optional, required 忽略,字段默认值和拓展配置忽略。 - 不支持message,enum嵌套。 - 不支持import,extend,oneof,syntax,singular,repeated。 - 其他breeze没有的特性不支持。

近期下载者

相关文件


收藏者