internal/

directory
v0.0.0-...-4d97b2f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2023 License: MIT

README

/internal

Private application and library code. This is the code you don't want others importing in their applications or libraries. Note that this layout pattern is enforced by the Go compiler itself. See the Go 1.4 release notes for more details. Note that you are not limited to the top level internal directory. You can have more than one internal directory at any level of your project tree.

You can optionally add a bit of extra structure to your internal packages to separate your shared and non-shared internal code. It's not required (especially for smaller projects), but it's nice to have visual clues showing the intended package use. Your actual application code can go in the /internal/app directory (e.g., /internal/app/myapp) and the code shared by those apps in the /internal/pkg directory (e.g., /internal/pkg/myprivlib).

For example, if you have a directory structure like this:

myapp/
    internal/
        util.go
    main.go 

myapp/internal/util.go can only be referenced within the myapp module. For example, main.go can import "myapp/internal/util". But code from other modules cannot import myapp/internal. If you try to import "myapp/internal/util", the compiler will report an error:

cannot use "myapp/internal/util" as external package name: myapp/internal/util.go: does not export package internal 

Examples:

/internal/pkg

Examples:

Directories

Path Synopsis
exporter
cmd
syncer
cmd
interrupt
Package interrupt deal with signals.
Package interrupt deal with signals.
templates
Package templates provides template functions for working with templates.
Package templates provides template functions for working with templates.
term
Package term provides structures and helper functions to work with terminal (state, sizes).
Package term provides structures and helper functions to work with terminal (state, sizes).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL