I implemented a pure-Julia arbitrary-dimensional version of the Genz-Malik algorithm at:
It should be fully functional, and a big advantage of being pure Julia is that it is type-generic. (e.g. your integrand function can be Float32, Complex{BigFloat}, Matrix{Float64}, etcetera and it will all work.)