How do you write 'binding/wrapper' for some python/c++ package

A lot of useful packages are wrappers, for example, GR, FFTW, Spark.

Is there s a systematic way of writing a binding package in Julia or it’s really ‘manual’ to a large extend?