To be clear, crates-io only needs GitHub for logging in.
The code doesn't have to be on GitHub, or anywhere else. crates-io stores the source code itself. Publishing via cargo publish uploads files as tar.gz.
There is no need to use git, nor any other version control system (you may want to, but crates-io/Cargo don't require it). There is no need to use any hosting platform. The source code will be made public on crates-io and docs.rs, but it doesn't have to be published anywhere else.
Today the minimum required to publish a crate is to create an empty GitHub account that doesn't have any repositories. It just needs to have a login and 2-factor auth set up.