Skip to content

qmule/libed2k

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5408c65 · Jun 2, 2016
Jun 1, 2016
May 30, 2016
Jun 1, 2016
Jan 29, 2013
Jun 1, 2016
May 31, 2016
May 9, 2016
Mar 22, 2013
May 26, 2016
Jun 1, 2016
May 26, 2016
Apr 24, 2014
Oct 3, 2014

Repository files navigation

libed2k

Build Status

eDonkey protocol library. Fast cross-platform eDonkey protocol library. Inspired by libtorrent_rasterbar.

Main features:

  • high speed
  • async IO

Kademlia

Library supports Kademlia2 eMule protocol. Version of client is KADEMLIA_VERSION5_48a to aboid obfuscation requirement. Features:

  • search for sources
  • search for keywords
  • handles KADEMLIA2_REQ

Restrictions:

  • buddy system is not supported
  • transfer announcing is not implemented yet
  • keywords announcing is not implemented yet

Building

Supported platforms

  • Linux
  • Mac OS
  • Windows
  • Android

Common dependencies:

  • boost(system, thread, random, date_time and tests for unit testing)
  • cmake

Windows, Linux, Mac OS X:

Windows x64 build on VS2015 cmake .. -G"Visual Studio 14 Win64"

Android cross platform compilation on Linux

Use some dev directory PATH.

Android tools and additional dependencies:

Prepare environment:

  • Checkout and install NDK: android-ndk-r10d-linux-x86_64.bin
  • Create stadalone toolchain( N D K / b u i l d / t o o l s / m a k e s t a n d a l o n e t o o l c h a i n . s h ) . {PATH}/arm-linux-androideabi_standalone
  • Build boost libraries using Boost for Android manual. For example boost 1.53
  • export BOOST_ROOT=${PATH}/Boost-for-Android/build/include/boost-1_53
  • export BOOST_LIBRARYDIR=${PATH}/Boost-for-Android/build/lib/
  • Possibly you have to rename boost libraries to libboost_xxx.a

Android build:

  • git clone https::/github.com/qmule/libed2k.git
  • mkdir android && cd android
  • cmake -DCMAKE_TOOLCHAIN_FILE=${PATH}/android-cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="armeabi-v7a with NEON" ADANDROID_STANDALONE_TOOLCHAIN=${PATH}/arm-linux-androideabi_standalone ..
  • make