Solver-o-matic
Decision Tree for Nonsmooth Optimization Software
Your first choice should be Proximal Bundle Method (MPBNGC) by M.M. Mäkelä (you need to code difference approximations by yourself). The code includes the constraint handling (bound constraints, linear constraints, and nonlinear/nonsmooth constraints). MPBNGC can also be used via WWW-NIMBUS -system.
For other choices, see e.g.