I2P Dart Protocol

I2P logo

The I2P Dart Protocol is a cross-platform library designed to provide an interface for the Invisible Internet Project (I2P) within Dart applications. By using a native library, this package offers seamless integration with I2P's anonymous, decentralized network, allowing developers to build privacy-focused applications on mobile, desktop, and server platforms.

Overview

I2P is a privacy network that provides anonymous communication and secure routing of internet traffic. This Dart package acts as a bridge to the I2P protocol, enabling secure, peer-to-peer connections without exposing identifying information. Built with cross-platform support in mind, it can run on various operating systems, leveraging native libraries for optimal performance.

Features

  • Cross-Platform Support: Designed to work seamlessly across mobile, desktop, and server environments, utilizing native libraries for each platform.
  • Secure and Anonymous: Implements I2P's privacy-focused protocol to provide end-to-end encrypted, anonymous communication.
  • Simple Integration: An easy-to-use API that allows you to integrate I2P networking into your Dart applications quickly.
  • Native Performance: Uses native libraries to handle I2P routing, ensuring fast and reliable communication with minimal overhead.
  • Customizable: Provides options for customizing your I2P connections, including setting up tunnels, managing peers, and more.

Getting Started

To get started, add this package to your pubspec.yaml:

PUT CODEBLOCK HERE

Installation

Since this package relies on native libraries, follow the platform-specific setup instructions to ensure the proper native binaries are installed:

  • Windows: Download and install the I2P native library for Windows. Make sure to add the library's path to your system environment variables.
  • macOS: Install the I2P library using Homebrew or download the binary manually. Add it to your system's library path.
  • Linux: Use your distribution's package manager to install the I2P native library, or build it from source.

Usage

To use the I2P Dart Protocol in your application, import the package and initialize a new I2P client:

import 'package:i2p/ip2.dart';

final i2p = I2P();
i2p.connect('127.0.0.1', 4150);

i2p.createTunnel();
i2p.destoryTunnel();

Examples

Check out the examples/ directory for various usage examples, including setting up a simple anonymous connection, managing I2P tunnels, and more.

Contributing

Contributions are welcome! If you'd like to contribute to the development of the I2P Dart Protocol, please read the contribution guidelines in the CONTRIBUTING.md file and submit a pull request.

License

This package is licensed under the MIT License. See the LICENSE file for more details.