Package Templates

There are several ways to create a Julia packages from templates.

Packages

PkgTemplates.jl

GitHub Repo stars deps PkgTemplates Downloads
Stable Dev GitHub last commit (branch) version Coverage

Create new Julia packages, the easy way

This package is the the most popular package generator.

It helps you set up the package structure, git repository, CI automations for building documentation, running tests, checking code coverage and more.

PackageMaker.jl

GitHub Repo stars deps PackageMaker Downloads
Doc GitHub last commit (branch) version Coverage

GUI for PkgTemplates.jl: "Creating new Julia packages, the easy way" - made a bit simpler.

From the package README:

This package allows you to create either a new package or a new project. It implements a subset of PkgTemplates.jl features (which subset hopefully covers >90% of its use cases). It also adds a couple of features of its own, e.g. ability to create Julia projects, or adding dependencies to projects or packages being created. Being a GUI app, it should be mostly self-explanatory, and external links for more information are provided from the GUI, too.

PkgSkeleton.jl

GitHub Repo stars deps PkgSkeleton Downloads
GitHub last commit (branch) version Coverage

Generate Julia package skeletons using a simple template system

From the package README:

Julia package for creating new packages and updating existing ones, following common practices and workflow recommendations.

Design principles:

  • Keep it simple: do nothing more than substitute strings into templates, with a few safeguards. This keeps the code simple: currently less than 300 LOC without docstrings. For me, this covers 99% of the use cases; the rest I edit manually.

  • Tread ligthly: don't modify uncommitted files (unless asked to, but really don't do that), or files with the same content (to preserve timestamps).

  • Assume that tooling for packages will keep changing, make it easy to update.

BestieTemplate.jl

GitHub Repo stars deps BestieTemplate Downloads
Stable Dev GitHub last commit (branch) version Coverage

BestieTemplate.jl

Template for Julia Programming Language packages using the copier engine.

A newer package generator announced at JuliaCon2024.

The main features of this package/template are:

  • It provides a curated (opinionated) list of tools and best practices for Julia package development

  • It can be applied and reapplied to existing packages, allowing the updates in the template to be imported into the package

It is a bit heavy as it is based on the copier python package.

All of the options are listed here.

Pkg.jl

GitHub Repo stars deps Pkg Downloads
Doc GitHub last commit (branch) version Coverage

Pkg.jl does not have templates, but it can create a minimum package with generate command.

CLI tools

Ion

Ion is a CLI toolkit for Julia developers, and can generate a new package with pre-defined templates.

See Ion Tutorial for more information.

GitHub repository templates

Some people use GitHub repository templates to generate a new Julia package. Here are some examples:

Star History

This website is a community effort covering a lot of ever-changing information. It will therefore never be complete or without error. If you see something wrong, or have something to contribute, please see the "Contributing" section in the github repository.

Last modified: August 10, 2025. Built with Franklin.jl