The Rust IPC writer types have a destructor that automatically writes the footer if necessary. This is not ideal, though, since it can hide errors. For example, if a web server is streaming data to a client in the Arrow IPC format and it encounters an internal error trying to generate the next batch, the outbound stream will appear valid to the client as the footer will automatically be written out but some amount of data will actually be missing. If the footer was not automatically written, the client would properly detect the truncation.
For reference, the C++ implementation does not attempt to write the footer implicitly on drop.