KickedDroid / flutter_libp2p

Flutter Libp2p port with FFI (experimental) Foreign Function Interface

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Flutter/Dart Libp2p

flutter_libp2p is implemented using rust-libp2p and FFI. Read more about rust-libp2p here

How it works

  • Dart FFI
  • flutter_rust_bridge
  • Cbor/Json RPC using embedded websockets

Usage

To spawn a libp2p node in flutter_libp2p use the start method

flutter_libp2p.spawnNode();

Listen to Swarm events

EventBus swarmEvents = await flutter_libp2p.events();
swarmEvents.on<ConnectionEstablished>().listen((event) {
  //Do something
  print(event.peerID);
});

To use in your flutter app you can call flutter_libp2p.spawnNode() in the initState method in main.dart like so

class _MyAppState extends State<MyApp> {
  ....
  
  @override
  void initState() {
    super.initState();
    flutter_libp2p.spawnNode();
  }
  
  .... //Proceeding Code
}

Get the current Local Peer Id

String pid = await flutter_libp2p.localPeerId();

Dial one or multiple from a list of Multi-Addresses

List<String> toDial = [
    "/ip4/172.30.144.1/tcp/42006/p2p/12D3KooWDk4Dez7KeWi5Z6JMVgQdEateaBY26yBpasdUedn29GaA"
  ];
// Note dial will not return result, instead event is sent through event stream  
await flutter_libp2p.dial(toDial);

About

Flutter Libp2p port with FFI (experimental) Foreign Function Interface

License:Other


Languages

Language:CMake 39.1%Language:C++ 36.4%Language:Dart 20.0%Language:Ruby 1.8%Language:C 1.3%Language:Swift 1.0%Language:Shell 0.3%Language:Kotlin 0.1%Language:Objective-C 0.0%