Is there a Julia optimization package that minimizes an objective function subject to constraints, where the unknowns are discrete (i.e., integer-valued), similar to MATLAB’s ga?

JuMP – provides you an interface to model optimization problems and call solvers like CPLEX, Gurobi, etc.

Evolutionary.jl may be able to do what you want. Check the test folder in GitHub for examples for integer problems.

I am looking for a free solver. The number of unknown discrete variables is a few hundred or even a few thousand. I was looking for a metaheuristic, rather than branch-and-bound discrete solvers like HiGHS, SCIP, CPLEX, and Gurobi, which struggle for too many unknown discrete variables.

MIP solvers can support that number of variables but only if you objective function is linear or quadratic, which it sounds like it might not be.

The constraints are not linear or quadratic.