jinzhu/copier

Copier for golang, copy value from struct to struct and more

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 12 minutes ago
Added to GitGenius on September 10th, 2026
Created on October 31st, 2013
Open Issues & Pull Requests: 79 (+0)
GitHub issues: Enabled
Number of forks: 497
Total Stargazers: 6,174 (+0)
Total Subscribers: 52 (+0)

Repository Insights (GitGenius)

Median issue/PR response: N/A
Mean response time: 59.2 days
90th percentile: N/A
Tracked items: 12

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 8
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 502 days
Stale 30+ days: 8
Stale 90+ days: 8

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Copier is a Go package that copies values between structs and performs related data transfer operations.

The package addresses the common problem of transferring data between struct instances, which is tedious and error-prone to do manually in Go. It works by inspecting struct fields and automatically mapping values from a source struct to a destination struct based on matching field names and compatible types. This eliminates boilerplate code when working with data transformation scenarios such as converting between domain models, API request and response objects, or database entities.

Developers should consider Copier when building Go applications that involve frequent struct-to-struct conversions. It suits projects with multiple layers of data representation, such as web services that need to transform between internal models and API contracts, or applications that work with both ORM entities and business logic objects. The package handles the common case where field names align across structs, reducing the need for manual field-by-field assignment.

The project shows consistent maintenance with regular updates addressing issues and improvements. Pull requests receive timely review and integration. The codebase demonstrates active engagement with user-reported problems and feature requests. Development activity indicates a stable, well-supported tool rather than an experimental or dormant project.