dave/jennifer

Jennifer is a code generator for Go

View on GitHub ↗Jump to charts ↓

dave/jennifer has 3.5k+ stars and 150+ forks on GitHub, is written in Go, and was last pushed on Oct 7, 2026. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 9 minutes ago
Added to GitGenius on October 7th, 2026
Created on December 4th, 2016
Open Issues & Pull Requests: 19 (+0)
GitHub issues: Enabled
Number of forks: 162
Total Stargazers: 3,631 (+0)
Total Subscribers: 34 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 1.7 hours
Mean response time: 28.6 days
90th percentile: 171.0 days
Tracked items: 6

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

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

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

Sign in to see which issues are moving.
Sign in

Detailed Description

Jennifer is a code generator for Go that provides a programmatic API for constructing Go source code.

The tool solves the problem of writing Go code generation logic by hand, which is error-prone and verbose. Instead of string concatenation or template manipulation, Jennifer offers a fluent API where developers construct code through method calls that represent Go language constructs. The generator handles details like import management automatically, including detecting when packages conflict and renaming them as needed, and recognizing standard library packages without requiring aliases.

Jennifer suits projects that need to generate Go code as part of their build or development process. The tool works well for developers who prefer type-safe, composable code generation over templates or string builders. It includes rendering methods for identifiers, keywords, operators, control flow statements, collections, literals, comments, and generics. For testing, code can be rendered using the fmt package, though the README notes this is not recommended for production use due to panic behavior on errors; instead, the File.Render or File.Save methods are preferred for production scenarios.

The project maintains a comprehensive suite of examples in its godoc documentation and demonstrates real-world usage through several generators built with it. The codebase includes genjen, which generates much of Jennifer itself using structured data, showing the tool's capability to bootstrap its own development. The maintainer actively welcomes engagement through issues, direct communication, and code review offers.