Module loading · The Julia Language
Description: Documentation for The Julia Language.

# Module loading

`Base.require` is responsible for loading modules and it also manages the precompilation cache. It is the implementation of the `import` statement.

## Experimental features

The features below are experimental and not part of the stable Julia API. Before building upon them inform yourself about the current thinking and whether they might change soon.

### Package loading callbacks

It is possible to listen to the packages loaded by `Base.require`, by registering a callback.

    loaded_packages = Base.PkgId[]
    callback = (pkg::Base.PkgId) -> push!(loaded_packages, pkg)
    push!(Base.package_callbacks, callback)

Using this would look something like:

    julia> using Example

    julia> loaded_packages
    1-element Vector{Base.PkgId}:
     Example [7876af07-990d-54b4-ab0e-23690620f79a]

Theme

This document was generated with Documenter.jl version 1.17.0 on Thursday 9 April 2026. Using Julia version 1.12.6.