I tested it on an iPhone 18 Pro simulator with iOS 27 and everything is fine and it works pretty well.
I did this by bypassing the restrictions on background tasks in iOS, that is, iOS thinks that the application is like a player and it plays music, but in fact, the player does not even appear in the interface and it is an empty file that does not even make a sound, so basically iOS does not kill background i2pd tasks.
There’s also a 10‑minute timer that starts when you disconnect, right in the Dynamic Island, until the piri is disconnected.
There’s a built‑in browser with JavaScript blocking and user agent spoofing, and there’s also an i2pd Web console, and, of course, there are HTTP and SOCKS proxies, which basically work.
There’s also an improved version of the i2pd console that updates itself and is made using the native iOS Swift UI interface.
It’s still running slowly, but if there are users, I’ll start working on improvements.
SoItsTime•38m ago
I did this by bypassing the restrictions on background tasks in iOS, that is, iOS thinks that the application is like a player and it plays music, but in fact, the player does not even appear in the interface and it is an empty file that does not even make a sound, so basically iOS does not kill background i2pd tasks.
There’s also a 10‑minute timer that starts when you disconnect, right in the Dynamic Island, until the piri is disconnected.
There’s a built‑in browser with JavaScript blocking and user agent spoofing, and there’s also an i2pd Web console, and, of course, there are HTTP and SOCKS proxies, which basically work.
There’s also an improved version of the i2pd console that updates itself and is made using the native iOS Swift UI interface.
It’s still running slowly, but if there are users, I’ll start working on improvements.