Simple solution:
DO NOT ATTEMPT THIS WITHOUT RUBBER GLOVES AND ADEQUATE VENTILATION.
Buy a gallon jug of muriatic (pool) acid at Walmart. This will remove all rust and fairly quickly, at that. Your best bet is outside on a windy day or with a fan behind you blowing the acid fumes in the opposite direction.
Pour some in a plastic pan and just let the gun sit in it
When all the rust has been removed, rinse thoroughly in clean, running water (your garden hose), then neutralize any minute residual acid by dunking in a baking soda solution.
Alternatively, Walmart also sells in the automotive chemicals department a product called "Naval Jelly." This is a gelatinous phosphoric acid solution that will also remove rust, but takes longer. On the plus side, it does produce less fumes than muriatic, and you can apply it with a brush.