There is no single application that will do what you ask as you are underestimating the complexity of the problem. Medial Axis will indeed identify a centre line but then you need to prune the network/tree, deal with islands, tributary junctions, different river types such as anastomosing or braided systems and if your source polygon that represents banks contains other topographic features like bridges, culverts and all other manner of river spanning structures then you need to deal with the gaps they create.
You don't give any indication of where in the world you intend to do your processing or the scale of it; a small sub-catchment or the entire Amazon river basin?
I would suggest you investigate the nations hydrological datasets or may be one of the DTM derived datasets? Many centreline river networks exist and constructing your own is a bit of fools errand unless you are working in an un-mapped region?