If you want a canned routine, you're best off with svds(A) in base Julia (wraps ARPACK) or tsvd(A) in
https://github.com/andreasnoack/PROPACK.jl (work in progress to wrap PROPACK). The other package I'm aware of is SLEPc, but it requires the entire PETSc stack.
Note that the singular values of A are essentially the square root of the magnitude of the eigenvalues of AA', or A'A, or [0 A; A' 0], so eigenvalue routines can be used to solve the singular value problem.
If you only need the largest singular value and its left singular vector, a simple quick and dirty DIY scheme is to do power iteration on AA':
A = randn(m, n)
u = randn(n) #some guess
for i=1:10 #some number of iterations
u = A*(A'u)
scale!(u, 1/norm(u))
end
σ = norm(A'u) #σ, u are the largest singular value and its left singular vector
There is a simple generalization to the largest k singular values and their left singular vectors.