Description
This package is meant to make copying of structs to/from others structs a bit easier.
Nested structures, embedded types, pointers, sql null types are supported.
Package for fast copying structs of different types alternatives and similar packages
Based on the "Utilities" category.
Alternatively, view Package for fast copying structs of different types alternatives based on common mentions on social networks and blogs.
-
fzf
:cherry_blossom: A command-line fuzzy finder -
dive
A tool for exploring each layer in a docker image -
delve
Delve is a debugger for the Go programming language. -
ngrok
Introspected tunnels to localhost -
hub
A command-line tool that makes git easier to use with GitHub. -
项目文档
基于vite+vue3+gin搭建的开发基础平台(支持TS,JS混用),集成jwt鉴权,权限管理,动态路由,显隐可控组件,分页封装,多点登录拦截,资源权限,上传下载,代码生成器,表单生成器,chatGPT自动查表等开发必备功能。 -
excelize
Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets -
ctop
Top-like interface for container metrics -
go-torch
Stochastic flame graph profiler for Go programs. -
GJSON
Get JSON values quickly - JSON parser for Go -
wuzz
Interactive cli tool for HTTP inspection -
goreleaser
Deliver Go binaries as fast and easily as possible -
Task
A task runner / simpler Make alternative written in Go -
resty
Simple HTTP and REST client library for Go -
usql
Universal command-line interface for SQL databases -
godotenv
A Go port of Ruby's dotenv library (Loads environment variables from .env files) -
peco
Simplistic interactive filtering tool -
xlsx
Go library for reading and writing XLSX files. -
Kopia
Cross-platform backup tool for Windows, macOS & Linux with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication. CLI and GUI included. -
godropbox
Common libraries for writing Go services/applications. -
hystrix-go
Netflix's Hystrix latency and fault tolerance library, for Go -
go-funk
A modern Go utility library which provides helpers (map, find, contains, filter, ...) -
gorequest
GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent ) -
minify
Go minifiers for web formats -
goreporter
A Golang tool that does static analysis, unit testing, code review and generate code quality report. -
lancet
A comprehensive, efficient, and reusable util function library of Go. -
mc
Simple | Fast tool to manage MinIO clusters :cloud: -
panicparse
Crash your app in style (Golang) -
gojson
Automatically generate Go (golang) struct definitions from example JSON -
mergo
Mergo: merging Go structs and maps since 2013 -
create-go-app
✨ A complete and self-contained solution for developers of any qualification to create a production-ready project with backend (Go), frontend (JavaScript, TypeScript) and deploy automation (Ansible, Docker) by running only one CLI command. -
spinner
Go (golang) package with 90 configurable terminal spinner/progress indicators. -
filetype
Fast, dependency-free Go package to infer binary file types based on the magic numbers header signature -
EaseProbe
A simple, standalone, and lightweight tool that can do health/status checking, written in Go. -
grequests
A Go "clone" of the great and famous Requests library -
boilr
:zap: boilerplate template manager that generates files or directories from template repositories -
sling
A Go HTTP client library for creating and sending API requests -
jump
Jump helps you navigate faster by learning your habits. ✌️ -
mole
CLI application to create ssh tunnels focused on resiliency and user experience. -
gitbatch
manage your git repositories in one place -
coop
Cheat sheet for some of the common concurrent flows in Go -
beaver
💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. -
mimetype
A fast Golang library for media type and file extension detection, based on magic numbers -
go-underscore
Helpfully Functional Go - A useful collection of Go utilities. Designed for programmer happiness. -
circuitbreaker
Circuit Breakers in Go -
scany
Library for scanning data from a database into Go structs and more -
JobRunner
Framework for performing work asynchronously, outside of the request flow -
gentleman
Plugin-driven, extensible HTTP client toolkit for Go
Learn any GitHub repo in 59 seconds
Do you think we are missing an alternative of Package for fast copying structs of different types or a related project?
Popular Comparisons
README
Package for fast copying structs of different types
This package is meant to make copying of structs to/from others structs a bit easier.
Nested structures, embedded types, pointers, sql null types are supported.
Installation
go get -u github.com/gotidy/copy
Example
type Person struct {
Name string
MiddleName *string
Surname string
}
type User struct {
Person
Email string
Age int8
Married bool
}
type Employee struct {
Name string
MiddleName string
Surname string
Email string
Age int
}
src := User{
Person: Person{
Name: "John",
MiddleName: nil,
Surname: "Smith",
},
Email: "[email protected]",
Age: 33,
Married: false,
}
dst := Employee{}
copiers := copy.New() // New("json")
copiers.Copy(&dst, &src)
// Or more fast use case is to create the type specific copier.
copier := copiers.Get(&Employee{}, &User{}) // Created once for a pair of types.
copier.Copy(&dst, &src)
Benchmark
Benchmarks source code can be found here
go test -bench=. -benchmem ./...
goos: darwin
goarch: amd64
pkg: github.com/gotidy/copy-bench
BenchmarkManualCopy-12 177310519 6.92 ns/op 0 B/op 0 allocs/op
BenchmarkCopiers-12 13476417 84.1 ns/op 0 B/op 0 allocs/op
BenchmarkCopier-12 40226689 27.5 ns/op 0 B/op 0 allocs/op
BenchmarkJinzhuCopier-12 407480 2711 ns/op 2480 B/op 34 allocs/op
BenchmarkDeepcopier-12 262836 4346 ns/op 4032 B/op 73 allocs/op
PASS
ok github.com/gotidy/copy-bench 6.922s
See the documentation for more information.
License
*Note that all licence references and agreements mentioned in the Package for fast copying structs of different types README section above
are relevant to that project's source code only.