zzz b1a4a8517e i2ptunnel: Refactor UDPTunnel, Streamr, and SOCKS UDP for I2CP ports
- Add fromPort and toPort to Sink interface (breaking API change)
- Change cache maps from Destination to I2PSocketAddress to include port
- Accept host:port for destination in Streamr Client, use port
  as toPort in pinger
- Change to muxed listener in I2PSource, only listen for
  specified protocols
- Eliminate thread and queue in I2PSource, process messages inline
  in the listener
- Add support for handling both repliable and raw datagrams in
  a single I2PSource instance
- Remove verify option from I2PSource and I2PTunnelUDPServerBase,
  always verify repliable datagrams
- Add getPort() method to UDPSource
- Add a constructor to UDPSink to pass in an existing DatagramSocket
- Change I2PTunnelUDPClientBase to receive both repliable and raw
- Change SOCKSUDPTunnel reply handling strategy to key on I2CP toPort;
  remove ReplyTracker; the tunnel would not have worked before, because
  it expected raw replies only but MultiSink required a destination
  to look up where to forward the reply.
- Mark SOCKSUDPTunnel as preliminary; note lack of support
  for raw replies; untested
- Change Streamr Client Pinger to support fromPort
- Change Streamr Server to remember fromPort in subscriptions
  and use it as toPort in data stream
- Move fields to top of classes for sanity
- Cleanups and log tweaks
2021-12-08 13:05:27 -05:00
2021-11-23 07:51:47 -05:00
2021-04-28 04:12:24 +00:00
2021-02-10 08:39:24 -05:00
2016-09-10 16:26:29 +00:00
2021-01-23 18:19:31 +01:00
2018-12-11 11:22:43 +00:00
2020-12-11 20:21:10 +00:00
2021-05-11 17:50:14 +00:00
2021-11-30 09:35:06 -05:00
2021-04-28 21:46:22 +00:00
2021-04-28 21:46:22 +00:00
2019-02-17 01:16:20 +00:00
2019-02-17 01:16:20 +00:00
2021-10-11 10:46:26 -04:00
2021-11-24 10:33:30 -05:00
2021-11-24 10:33:30 -05:00

I2P

This is the source code for the reference Java implementation of I2P.

Latest release: https://geti2p.net/download

Installing

See INSTALL.txt or https://geti2p.net/download for installation instructions.

Documentation

https://geti2p.net/how

FAQ: https://geti2p.net/faq

API: http://docs.i2p-projekt.de/javadoc/ or run 'ant javadoc' then start at build/javadoc/index.html

How to contribute / Hack on I2P

Please check out HACKING.md and other documents in the docs directory.

Building packages from source

To get development branch from source control: https://geti2p.net/newdevelopers

Prerequisites

  • Java SDK (preferably Oracle or OpenJDK) 8 or higher
    • Non-linux operating systems and JVMs: See 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/
  • 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

Docker

For more information how to run I2P in Docker, see Docker.md

Contact info

Need help? See the IRC channel #i2p on irc.freenode.net

Bug reports: https://i2pgit.org/i2p-hackers/i2p.i2p/-/issues http://git.idk.i2p/i2p-hackers/i2p.i2p/-/issues

Contact information, security issues, press inquiries: https://geti2p.net/en/contact

Twitter: @i2p, @geti2p

Licenses

See LICENSE.txt

S
Description
I2P is an anonymizing network, offering a simple layer that identity-sensitive applications can use to securely communicate. All data is wrapped with several layers of encryption, and the network is both distributed and dynamic, with no trusted parties.
Readme 476 MiB
Languages
Java 87.2%
CSS 4.8%
HTML 3.8%
Shell 1.1%
JavaScript 1.1%
Other 1.8%