using BayesOpt
config = ConfigParameters() # calls initialize_parameters_to_default of the C API
set_kernel!(config, "kMaternARD5") # calls set_kernel of the C API
config.sc_type = SC_MAP
f(x) = sum(x .^ 2)
lowerbound = [-2., -2.]; upperbound = [2., 2.]
optimizer, optimum = bayes_optimization(f, lowerbound, upperbound, config)
Consult the BayesOpt documentation for the configuration options.
BayesianOptimization has less features, but is written in julia and has similar performance.