https://github.com/tpope/vim-surround
I remember using it but having issues with inserted spaces. Like cs({ did not replace (foo) by {foo}, but by { foo } which rendered the whole thing as useless for me. Still have to take a look as soon as I need it.