# I2P This is the source code for the reference Java implementation of I2P. Latest release: [https://i2p.net/en/downloads/](https://i2p.net/en/downloads/) ## Installing See [INSTALL.txt](INSTALL.txt) or the installation instructions for your system: - [Windows](https://i2p.net/en/docs/guides/installing-i2p-on-windows/) - [macOS](https://i2p.net/en/docs/guides/installing-i2p-on-macos/) - [Linux](https://i2p.net/en/docs/guides/installing-i2p-on-debian-and-ubuntu/) - [Android](https://play.google.com/store/apps/details?id=net.i2p.android) ## Documentation [https://i2p.net/en/docs/](https://i2p.net/en/docs/) FAQ: [https://i2p.net/en/docs/overview/faq/](https://i2p.net/en/docs/overview/faq/) API: Run 'ant javadoc' then start at build/javadoc/index.html ## How to contribute / Hack on I2P Please check out [HACKING.md](docs/HACKING.md) and other documents in the docs directory. ## Building packages from source To get development branch from source control: [https://i2p.net/docs/development/new-developers/](https://i2p.net/docs/development/new-developers/) ### Prerequisites - Java SDK (preferably Oracle or OpenJDK) 17 or higher - Non-linux operating systems and JVMs: See [https://trac.i2p2.de/wiki/java](https://trac.i2p2.de/wiki/java) - Certain subsystems for embedded (core, router, mstreaming, streaming, i2ptunnel) require only Java 6 - Apache Ant 1.9.8 or higher - The xgettext, msgfmt, and msgmerge tools installed from the GNU gettext package [http://www.gnu.org/software/gettext/](http://www.gnu.org/software/gettext/) - Build environment must use a UTF-8 locale. ### Ant build process On x86 systems do: ant pkg On non-x86, use one of the following instead: ant installer-linux ant installer-freebsd ant installer-osx Run 'ant' with no arguments to see other build options. ### Gradle build process Full builds of installers or updates are not yet possible, but the code can be compiled with: ./gradlew assemble This will download dependencies over the clearnet by default, including Gradle itself. To download through a SOCKS proxy (e.g. Tor), add the following lines to your `~/.gradle/gradle.properties`: systemProp.socksProxyHost=localhost systemProp.socksProxyPort=9150 ### Development builds Automatic CI builds are available at the [continuous integration](https://github.com/i2p/i2p.i2p/actions/workflows/ant.yml) page. ### Docker For more information how to run I2P in Docker, see [Docker.md](Docker.md) ## Contact info Need help? See the IRC channel #i2p on irc.freenode.net Bug reports: [https://i2pgit.org/I2P_Developers/i2p.i2p/issues](https://i2pgit.org/I2P_Developers/i2p.i2p/issues) [http://git.idk.i2p/I2P_Developers/i2p.i2p/issues](http://git.idk.i2p/I2P_Developers/i2p.i2p/issues) Contact information, security issues, press inquiries: [https://i2p.net/en/contact](https://i2p.net/en/contact) Twitter: [@i2p](https://twitter.com/i2p), [@geti2p](https://twitter.com/GetI2P) ## Licenses See [LICENSE.txt](LICENSE.txt)