copygen
copier
Our great sponsors
copygen | copier | |
---|---|---|
14 | 4 | |
331 | 5,101 | |
- | - | |
0.0 | 3.9 | |
about 2 months ago | 18 days ago | |
Go | Go | |
GNU General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
copygen
-
The Icculus Microgrant is giving out 250 dollar grants to open source projects, please brag about your project(s) in this thread so I can see them!
Copygen is a type-based code generator for the Go programming language. Copygen allows developers to generate type-to-type copy functions out-of-the-box without reflection (why?), but it can also be used to generate code. As an example, disgo is a performant, secure, and thread-safe Go Discord API Wrapper that uses Copygen with dasgo to achieve feature completion.
-
sqlc patterns in production
An alternative is to use a reflection based struct copier library or a codegen struct copier library
- How Disgo Used Copygen to Generate 10,000 Lines Of Code
-
What is Disgo? An In-Depth Look.
Disgo is the only Go API Wrapper using a maintainable approach to become feature complete. Disgo is the only Go API Wrapper to provide OAuth2 flows. Disgo is the only wrapper to define API definitions (objects, requests, commands) as structs, allowing for usage of the Discord Producer API without requiring knowledge of an additional API Wrapper Consumer API.
- Copygen v0.4 can generate customized code based on types
- Copygen (v0.4) is a code generator that can generate customized code based on types.
-
Contribute to Copygen v0.4 for Reddit Gold
Copygen allows developers to define types, structs, and more in its setup.go file and has no issues copying them to the output; except for comments. The Go AST makes it "very difficult to update the AST and retain correct comment place (from 2017)" and is not likely to change any time soon. As a result, Copygen sometimes generates free-floating comments (i.e multi.go). Copygen's comments are handled in its Parser. Feel free to use any necessary libraries or rewriting of the comment-parsing mechanism to fix this issue.
- copygen: Generate type-to-type and field-to-field struct code without reflection or dependencies.
- Copygen: Type-Based Code Generator
- Copygen is a code generator that can generate ANY function based on types.
copier
-
Best practice for separating DB models from API models?
When the internal model and the API model are pretty much the same, you might simply copy the result from one struct to another using e.g. https://github.com/jinzhu/copier
-
sqlc patterns in production
An alternative is to use a reflection based struct copier library or a codegen struct copier library
-
Generating a YAML file with Go template engine?
I think using the yaml library directly would be a lot easier. You could then unmarshal both configs to a struct and use something like copier to update the values.
-
how do you deep copy a struct with slice of structs to another
However, if you don't want to bother, I suggest to take a look at https://github.com/jinzhu/copier which is more extensive and works with slices and pointer types.
What are some alternatives?
goverter - Generate type-safe Go converters by simply defining an interface
cookiecutter - A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects.
Package for fast copying structs of different types - Package for fast copying structs of different types
copy-pasta - Universal copy paste service, works across different machines!
jennifer - Jennifer is a code generator for Go
HTTP Prompt - An interactive command-line HTTP and API testing client built on top of HTTPie featuring autocomplete, syntax highlighting, and more. https://twitter.com/httpie
go-zero - A cloud-native Go microservices framework with cli tool for productivity.
iseven_go - Just a simple attempt to make a Go package
convergen - A type-to-type copy function code generator.
goswift - High-performance, concurrent embedded caching library for Go applications with support for Hash data type, Disk Save and TTL
copy - Go copy directory recursively