mirror of
https://github.com/go-i2p/go-i2p.git
synced 2025-07-01 12:13:35 -04:00
343 lines
8.6 KiB
HTML
343 lines
8.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>go-i2p/go-i2p</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
<body>
|
|
<nav class="nav-sidebar">
|
|
<div class="repo-info">
|
|
<h2>
|
|
<a href="index.html">go-i2p/go-i2p</a>
|
|
</h2>
|
|
<div class="repo-meta">
|
|
📝 620 commits
|
|
• 📜 MIT License
|
|
</div>
|
|
</div>
|
|
|
|
<ul class="nav-links">
|
|
<li><a href="index.html" class="active">Repository Overview</a></li>
|
|
|
|
|
|
<div class="nav-section-title">Documentation:</div>
|
|
|
|
<li><a href="docs/CONTRIBUTING.html">Contributing</a></li>
|
|
|
|
<li><a href="docs/template.html">Template</a></li>
|
|
|
|
<li><a href="docs/ROADMAP.html">go-i2p Implementation Roadmap</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
<div class="nav-footer">
|
|
<a href="https://github.com/go-i2p/go-i2p" target="_blank">View on GitHub</a>
|
|
</div>
|
|
</nav>
|
|
|
|
<div class="main-content">
|
|
<header class="repo-header">
|
|
<h1>go-i2p/go-i2p</h1>
|
|
<div class="repo-description">A pure Go implementation of the I2P router.</div>
|
|
|
|
<div class="repo-stats">
|
|
|
|
<div class="repo-stat">
|
|
<span>📝</span> <span>620 commits</span>
|
|
</div>
|
|
|
|
|
|
<div class="repo-stat">
|
|
<span>📅</span> <span>Last updated: June 28, 2025</span>
|
|
</div>
|
|
|
|
|
|
<div class="repo-stat">
|
|
<span>📜</span> <span>MIT License</span>
|
|
</div>
|
|
|
|
</div>
|
|
</header>
|
|
|
|
<main>
|
|
|
|
<section id="readme" class="repo-section">
|
|
<h2>README</h2>
|
|
<div class="readme-content">
|
|
<h1 id="go-i2p">go-i2p</h1>
|
|
|
|
<p>A pure Go implementation of the I2P router.</p>
|
|
|
|
<h2 id="status">Status</h2>
|
|
|
|
<p>go-i2p is in early development. The master branch is being refactored and API’s are
|
|
definitely going to change. If you choose to use any part of this code right now,
|
|
please keep up with these changes, as they will not be backward compatible and require
|
|
<strong>Fundamentally</strong> changing any code that treats this as a dependency.</p>
|
|
|
|
<h3 id="implemented-features">Implemented Features</h3>
|
|
|
|
<ul>
|
|
<li>Clients
|
|
|
|
<ul>
|
|
<li>[ ] Datagrams</li>
|
|
<li>[ ] I2CP</li>
|
|
<li>[ ] Message routing</li>
|
|
<li>[ ] Streaming</li>
|
|
</ul></li>
|
|
<li>Cryptographic primitives
|
|
|
|
<ul>
|
|
<li>Signing
|
|
|
|
<ul>
|
|
<li>[ ] ECDSA_SHA256_P256</li>
|
|
<li>[ ] ECDSA_SHA384_P384</li>
|
|
<li>[ ] ECDSA_SHA512_P521</li>
|
|
<li>[X] Ed25519</li>
|
|
</ul></li>
|
|
<li>Verifying
|
|
|
|
<ul>
|
|
<li>[X] DSA</li>
|
|
<li>[ ] ECDSA_SHA256_P256</li>
|
|
<li>[ ] ECDSA_SHA384_P384</li>
|
|
<li>[ ] ECDSA_SHA512_P521</li>
|
|
<li>[ ] RSA_SHA256_2048</li>
|
|
<li>[ ] RSA_SHA384_3072</li>
|
|
<li>[ ] RSA_SHA512_4096</li>
|
|
<li>[X] Ed25519</li>
|
|
<li>[ ] Red25519</li>
|
|
</ul></li>
|
|
<li>[X] ElGamal</li>
|
|
<li>[X] AES256</li>
|
|
<li>[X] X25519</li>
|
|
<li>[X] ChaCha20/Poly1305</li>
|
|
<li>[ ] Elligator2</li>
|
|
<li>[ ] HKDF</li>
|
|
<li>[X] HMAC</li>
|
|
<li>[X] Noise subsystem</li>
|
|
</ul></li>
|
|
<li>End-to-End Crypto
|
|
|
|
<ul>
|
|
<li>[ ] Garlic messages</li>
|
|
<li>[ ] ElGamal/AES+SessionTag</li>
|
|
<li>[ ] Ratchet/X25519</li>
|
|
</ul></li>
|
|
<li>I2NP
|
|
|
|
<ul>
|
|
<li>[ ] Message parsing</li>
|
|
<li>[ ] Message handling</li>
|
|
</ul></li>
|
|
<li>NetDB
|
|
|
|
<ul>
|
|
<li>[~] Local storage</li>
|
|
<li>[~] Persistence to disk</li>
|
|
<li>[X] Reseeding</li>
|
|
<li>[ ] Lookups</li>
|
|
<li>[ ] Expiry</li>
|
|
<li>[ ] Exploration</li>
|
|
<li>[ ] Publishing</li>
|
|
<li>[ ] Floodfill</li>
|
|
<li>[ ] LS2 and Encrypted Leasesets</li>
|
|
</ul></li>
|
|
<li>Transports
|
|
|
|
<ul>
|
|
<li>[X] Transport manager</li>
|
|
<li>NTCP2
|
|
|
|
<ul>
|
|
<li>[X] Handshake</li>
|
|
<li>[ ] Session tracking</li>
|
|
<li>[ ] Automatic session creation</li>
|
|
</ul></li>
|
|
<li>SSU2
|
|
|
|
<ul>
|
|
<li>[ ] Handshake</li>
|
|
<li>[ ] Session tracking</li>
|
|
<li>[ ] Automatic session creation</li>
|
|
<li>[ ] Peer Tests</li>
|
|
<li>[ ] Introducers</li>
|
|
</ul></li>
|
|
</ul></li>
|
|
<li>Tunnels
|
|
|
|
<ul>
|
|
<li>[ ] Building</li>
|
|
<li>[ ] Build Message Crypto (ElGamal)</li>
|
|
<li>[ ] Build Message Crypto (ECIES)</li>
|
|
<li>[ ] Participating</li>
|
|
<li>[ ] Tunnel Message Crypto</li>
|
|
<li>[ ] Tunnel Message Fragmentation/Reassembly</li>
|
|
</ul></li>
|
|
<li>Common Data Structures
|
|
|
|
<ul>
|
|
<li>[X] Keys and Cert</li>
|
|
<li>[X] Key Certificates</li>
|
|
<li>[X] Certificate</li>
|
|
<li>[X] Lease</li>
|
|
<li>[X] Lease Set</li>
|
|
<li>[X] Router Info</li>
|
|
<li>[X] Router Identity</li>
|
|
<li>[X] Router Address</li>
|
|
<li>[X] Session Key</li>
|
|
<li>[X] Signature Types</li>
|
|
<li>[X] Destination</li>
|
|
<li>[X] Data Types</li>
|
|
<li>[X] Session Tag</li>
|
|
</ul></li>
|
|
</ul>
|
|
|
|
<h2 id="verbosity">Verbosity</h2>
|
|
|
|
<p>Logging can be enabled and configured using the <code>DEBUG_I2P</code> environment variable. By default, logging is disabled.</p>
|
|
|
|
<p>There are three available log levels:</p>
|
|
|
|
<ul>
|
|
<li>Debug</li>
|
|
</ul>
|
|
|
|
<pre><code class="language-shell">export DEBUG_I2P=debug
|
|
</code></pre>
|
|
|
|
<ul>
|
|
<li>Warn</li>
|
|
</ul>
|
|
|
|
<pre><code class="language-shell">export DEBUG_I2P=warn
|
|
</code></pre>
|
|
|
|
<ul>
|
|
<li>Error</li>
|
|
</ul>
|
|
|
|
<pre><code class="language-shell">export DEBUG_I2P=error
|
|
</code></pre>
|
|
|
|
<p>If DEBUG_I2P is set to an unrecognized variable, it will fall back to “debug”.</p>
|
|
|
|
<h2 id="fast-fail-mode">Fast-Fail mode</h2>
|
|
|
|
<p>Fast-Fail mode can be activated by setting <code>WARNFAIL_I2P</code> to any non-empty value. When set, every warning or error is Fatal.
|
|
It is unsafe for production use, and intended only for debugging and testing purposes.</p>
|
|
|
|
<pre><code class="language-shell">export WARNFAIL_I2P=true
|
|
</code></pre>
|
|
|
|
<p>If <code>WARNFAIL_I2P</code> is set and <code>DEBUG_I2P</code> is unset, <code>DEBUG_I2P</code> will be set to <code>debug</code>.</p>
|
|
|
|
<h2 id="contributing">Contributing</h2>
|
|
|
|
<p>See CONTRIBUTING.md for more information.</p>
|
|
|
|
<h2 id="license">License</h2>
|
|
|
|
<p>This project is licensed under the MIT license, see LICENSE for more information.</p>
|
|
|
|
</div>
|
|
</section>
|
|
|
|
|
|
|
|
<section id="contributors" class="repo-section">
|
|
<h2>Top Contributors</h2>
|
|
<div class="contributors-list">
|
|
|
|
<div class="contributor-item">
|
|
<!-- Use first letter as avatar if no image available -->
|
|
<div class="contributor-avatar">
|
|
e
|
|
</div>
|
|
<div class="contributor-info">
|
|
<div class="contributor-name">
|
|
eyedeekay
|
|
</div>
|
|
<div class="contributor-commits">
|
|
266 commits
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="contributor-item">
|
|
<!-- Use first letter as avatar if no image available -->
|
|
<div class="contributor-avatar">
|
|
H
|
|
</div>
|
|
<div class="contributor-info">
|
|
<div class="contributor-name">
|
|
Haris Khan
|
|
</div>
|
|
<div class="contributor-commits">
|
|
176 commits
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="contributor-item">
|
|
<!-- Use first letter as avatar if no image available -->
|
|
<div class="contributor-avatar">
|
|
H
|
|
</div>
|
|
<div class="contributor-info">
|
|
<div class="contributor-name">
|
|
Hayden Parker
|
|
</div>
|
|
<div class="contributor-commits">
|
|
65 commits
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="contributor-item">
|
|
<!-- Use first letter as avatar if no image available -->
|
|
<div class="contributor-avatar">
|
|
J
|
|
</div>
|
|
<div class="contributor-info">
|
|
<div class="contributor-name">
|
|
Jeff Becker
|
|
</div>
|
|
<div class="contributor-commits">
|
|
35 commits
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="contributor-item">
|
|
<!-- Use first letter as avatar if no image available -->
|
|
<div class="contributor-avatar">
|
|
H
|
|
</div>
|
|
<div class="contributor-info">
|
|
<div class="contributor-name">
|
|
Hayden Parker
|
|
</div>
|
|
<div class="contributor-commits">
|
|
28 commits
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<a href="https://github.com/go-i2p/go-i2p/graphs/contributors" target="_blank">View all contributors on GitHub →</a>
|
|
</section>
|
|
|
|
</main>
|
|
|
|
<footer class="page-footer">
|
|
<p>Generated on 2025-06-30 15:24:08 • <a href="https://github.com/go-i2p/go-i2p" target="_blank">View on GitHub</a></p>
|
|
</footer>
|
|
</div>
|
|
</body>
|
|
</html> |