Is there an 'upgrade project to new API' tool for Rust?

It can do library changes too:

You can extend gofix to support changes to your own APIs. The gofix program is a simple driver around plugins called fixes that each handle a particular API change. Right now, writing a new fix requires doing some scanning and rewriting of the go/ast syntax tree, usually in proportion to how complex the API changes are.

As far as I know, the main things that do potentially limit go fix's relevance to Rust is not having a broadly enforced official coding style or standard libraries for parsing and printing Rust ASTs while preserving that coding style:

Gofix is possible because Go has support in its standard libraries for parsing Go source files into syntax trees and also for printing those syntax trees back to Go source code. Importantly, the Go printing library prints a program in the official format (typically enforced via the gofmt tool), allowing gofix to make mechanical changes to Go programs without causing spurious formatting changes. In fact, one of the key motivations for creating gofmt—perhaps second only to avoiding debates about where a particular brace belongs—was to simplify the creation of tools that rewrite Go programs, as gofix does.

My impression is that Rust is somewhat less opinionated than Go, so we probably want to look into whether it's feasible for "rust fix plugins" to support ergonomic code-editing-code that makes no spurious format changes by default no matter what coding style is in use.