Official eMule-Board: Qmule - Official eMule-Board

Jump to content


  • (2 Pages)
  • +
  • 1
  • 2

Qmule C++ open source eDonkey/torrent client

#1 User is offline   intser 

  • Member
  • PipPip
  • Group: Members
  • Posts: 17
  • Joined: 16-January 13

Posted 17 January 2013 - 10:31 AM

Hello.

I work in qMule development team. It is new cross platform eDonkey/torrent client. It based on libtorrent_rasterbar library and libed2k library.

libed2k features:
1. Cross platform
2. High speed
3. Async IO operation.

In plans:
1. IPV6 support
2. Multi servers
0

#2 User is offline   Zangune 

  • Golden eMule
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1941
  • Joined: 05-March 12

Posted 17 January 2013 - 11:41 AM

View Postintser, on 17 January 2013 - 11:31 AM, said:

In plans:
1. IPV6 support

I hope people will work together or will use a compatible implementation

View PostDavidXanatos, on 10 January 2013 - 03:41 PM, said:

I'm looking forward to adding IPv6 support to my ed2k/eMule capable File Sharing client



View Postintser, on 17 January 2013 - 11:31 AM, said:

2. Multi servers

eMule developers idea about this

View PostUnknown1, on 20 July 2003 - 05:01 PM, said:

Features you won't see in eMule:
  • Multiple Server connections - We already talk to all the servers. Creating extra connections is just wasteful and loads the servers.
  • Server hopping - We already talk to all the servers. This is just wasteful and loads the servers.

It's really necessary?

This post has been edited by Zangune: 17 January 2013 - 11:44 AM

0

#3 User is offline   DavidXanatos 

  • Neo Dev
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1469
  • Joined: 23-April 04

Posted 17 January 2013 - 12:17 PM

View Postintser, on 17 January 2013 - 10:31 AM, said:

Hello.

I work in qMule development team. It is new cross platform eDonkey/torrent client. It based on libtorrent_rasterbar library and libed2k library.

libed2k features:
1. Cross platform
2. High speed
3. Async IO operation.

In plans:
1. IPV6 support
2. Multi servers


About IPv6 I'm designing also a protocol extension for that, some first thoughts can be found at http://forum.emule-p...howtopic=155981

It would be great if we could agree on a standard so that the implementations will be compatible.

About servers you should drop server support and instead go for KAD only,
as it happens I can help you with that a lot: http://update.neoloa...ces/MuleKad.rar this is a MuleKad process, it contains kad only with minimal changes it can be compiled on any C++ platform as all main parts use only clean C++ with STL.
You can use it as separated process accessible via Pipes or sockets if your plroject is not GPL or you can copy and past the KadCode Core into your project if it is GPL, this way you wouldnt need process separation.

The MuleKad module bases on the most recent aMule code so its state of the art.

How about Adding Nat- Traversal, on my todo list its quite high up, a compatible implementation here would also be great.

David X.
NeoLoader is a new file sharing client, supporting ed2k/eMule, Bittorent and one click hosters,
it is the first client to be able to download form multiple networks the same file.
NL provides the first fully decentralized scalable torrent and DDL keyword search,
it implements an own novel anonymous file sharing network, providing anonymity and deniability to its users,
as well as many other new features.
It is written in C++ with Qt and is available for Windows, Linux and MacOS.
0

#4 User is offline   hooligan3000 

  • European Community
  • PipPipPipPipPipPip
  • Group: Members
  • Posts: 337
  • Joined: 19-December 09

Posted 17 January 2013 - 02:06 PM

some bad mods had multi server..
but its useless all ed2k server have the same information :bounce:

ed2k://|server|91.208.162.87|4232|/
ed2k://|server|85.239.33.123|4232|/
ed2k://|server|91.208.162.55|4232|/


SD - Telegram

Air VPN - The air to breathe the real Internet

BTC
bc1qdrk0ld07jtg99ym2zg68cpqhqj34qnf2txm93n
XMR
48ja6xJ2NyPMNzmY1pA3ZZPpX5yTaw9Ym28jrDPCL7Y7L7pr5wXFdpeK4WqBbvVY5qEa6VDfhFKTnHWef3EPC4zgQNTnAwg
0

#5 User is offline   YumeYao 

  • Member
  • PipPip
  • Group: Members
  • Posts: 16
  • Joined: 08-February 11

Posted 17 January 2013 - 03:07 PM

I love the way you seperate ed2k as a single module(I hope libed2k doesn't take extra dependencies), while I personally dislike qt because of its ugly(non-native) look and bloated overheads.

But... why is libkademlia missing? Currently kad is fairly more important than ed2k.

Also I believes the offcial eMule has a great space for performance/speed improving, and so do its mods. For aMule, I haven't checked its code too much but just from the face, it seems aMule has made some effort improving code quality.


IPv6 is great but it should have a common design of protocol extension supported by any kinds of ed2k/kad clients. I still have no thoughts on IPv6 and haven't experienced any coding on it.


@DavidXanatos:
404 error for MuleKad.rar.
0

#6 User is offline   DavidXanatos 

  • Neo Dev
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1469
  • Joined: 23-April 04

Posted 17 January 2013 - 03:14 PM

View PostYumeYao, on 17 January 2013 - 03:07 PM, said:

@DavidXanatos:
404 error for MuleKad.rar.


Thats strange for me it works, can you go on; http://update.neoloader.to/ ?
NeoLoader is a new file sharing client, supporting ed2k/eMule, Bittorent and one click hosters,
it is the first client to be able to download form multiple networks the same file.
NL provides the first fully decentralized scalable torrent and DDL keyword search,
it implements an own novel anonymous file sharing network, providing anonymity and deniability to its users,
as well as many other new features.
It is written in C++ with Qt and is available for Windows, Linux and MacOS.
0

#7 User is offline   YumeYao 

  • Member
  • PipPip
  • Group: Members
  • Posts: 16
  • Joined: 08-February 11

Posted 17 January 2013 - 03:24 PM

View PostDavidXanatos, on 17 January 2013 - 11:14 PM, said:

Thats strange for me it works, can you go on; http://update.neoloader.to/ ?

Posted Image
something like a server default page.
0

#8 User is offline   DavidXanatos 

  • Neo Dev
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1469
  • Joined: 23-April 04

Posted 17 January 2013 - 03:54 PM

you seam to have something messed up with oyur DLS provider, try: http://www.opendns.com/
NeoLoader is a new file sharing client, supporting ed2k/eMule, Bittorent and one click hosters,
it is the first client to be able to download form multiple networks the same file.
NL provides the first fully decentralized scalable torrent and DDL keyword search,
it implements an own novel anonymous file sharing network, providing anonymity and deniability to its users,
as well as many other new features.
It is written in C++ with Qt and is available for Windows, Linux and MacOS.
0

#9 User is offline   xilolee 

  • eMule 0.50b BETA1 user
  • PipPipPipPipPipPipPip
  • Group: Italian Moderators
  • Posts: 7983
  • Joined: 20-August 08

Posted 17 January 2013 - 04:11 PM

I have the same YumeYao's errors.
Using my gateway as dns and using Google DNSs, Windows firewall disabled (Yes, I'm using it).

This post has been edited by xilolee: 17 January 2013 - 04:14 PM

INCONCEIVABLE! - You keep using that word. I do not think it means what you think it means.
come ottenere aiuto italian guides - guide della sezione italiana
italian support - sezione italiana scaricare la lista server
ottenere id alto impostare le porte nel router
recuperare file corrotti i filtri ip
Sembra talco ma non è serve a darti l'allegrIa! Se lo lanci e poi lo respiri ti dà subito l'allegrIa! Posted Image
0

#10 User is offline   YumeYao 

  • Member
  • PipPip
  • Group: Members
  • Posts: 16
  • Joined: 08-February 11

Posted 17 January 2013 - 04:15 PM

View PostDavidXanatos, on 17 January 2013 - 11:54 PM, said:

you seam to have something messed up with oyur DLS provider, try: http://www.opendns.com/

Did you mean DNS?

I use google's DNS server (8.8.8.8) as my primary dns server. I've just tried opendns:
C:\Users\YumeYao>nslookup update.neoloader.to 208.67.222.222
服务器:  resolver1.opendns.com
Address:  208.67.222.222

非权威应答:
名称:    update.neoloader.to
Address:  94.23.146.14


C:\Users\YumeYao>nslookup update.neoloader.to 208.67.220.220
服务器:  resolver2.opendns.com
Address:  208.67.220.220

非权威应答:
名称:    update.neoloader.to
Address:  94.23.146.14


C:\Users\YumeYao>nslookup update.neoloader.to 8.8.8.8
服务器:  google-public-dns-a.google.com
Address:  8.8.8.8

非权威应答:
名称:    update.neoloader.to
Address:  94.23.146.14

0

#11 User is offline   DavidXanatos 

  • Neo Dev
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1469
  • Joined: 23-April 04

Posted 17 January 2013 - 04:25 PM

Thats odd, may be my domain provider fucked something up,
on my PC it works but it may have some old dns results cached.

Here you have a rapidshare download to the relevant files:
MuleKad (GPL): http://rapidshare.co...573/MuleKad.rar
and the required NeoHelper Library (LGPL): http://rapidshare.co...5/NeoHelper.rar
NeoLoader is a new file sharing client, supporting ed2k/eMule, Bittorent and one click hosters,
it is the first client to be able to download form multiple networks the same file.
NL provides the first fully decentralized scalable torrent and DDL keyword search,
it implements an own novel anonymous file sharing network, providing anonymity and deniability to its users,
as well as many other new features.
It is written in C++ with Qt and is available for Windows, Linux and MacOS.
0

#12 User is offline   YumeYao 

  • Member
  • PipPip
  • Group: Members
  • Posts: 16
  • Joined: 08-February 11

Posted 17 January 2013 - 04:34 PM

Rapidshare says:

Download permission denied by uploader.
0

#13 User is offline   DavidXanatos 

  • Neo Dev
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1469
  • Joined: 23-April 04

Posted 17 January 2013 - 04:47 PM

ok now it should work try again
NeoLoader is a new file sharing client, supporting ed2k/eMule, Bittorent and one click hosters,
it is the first client to be able to download form multiple networks the same file.
NL provides the first fully decentralized scalable torrent and DDL keyword search,
it implements an own novel anonymous file sharing network, providing anonymity and deniability to its users,
as well as many other new features.
It is written in C++ with Qt and is available for Windows, Linux and MacOS.
0

#14 User is offline   YumeYao 

  • Member
  • PipPip
  • Group: Members
  • Posts: 16
  • Joined: 08-February 11

Posted 17 January 2013 - 07:20 PM

Cool. just found a google cache copy of your site: http://webcache.goog...5&hl=en&ct=clnk

I like the idea to seperate each module very much, it seems that MuleKad is based on aMule's kad module.

For the fact aMule (and this module) uses std::string as its string type, I don't know whether qt has its native string type as CString in MFC or wxString in wxWidgets. It's said that std::string is not as efficient compared to other string types listed above.
However, if I were to rewrite this part, I may choose to completely avoid using a C++ string type. C++ strings are too heavy and they only benefits when the string is to be modified a lot(I think it's not the case for kad). Also, if another part of the app uses a different C++ string type (say, std::string and wxString), the conversion also takes couples of memory copies...

Well, I understand performance is not the top topic for eMule. But it's just my style. lol.
0

#15 User is offline   DavidXanatos 

  • Neo Dev
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1469
  • Joined: 23-April 04

Posted 17 January 2013 - 08:01 PM

Qt actually has its own string type QString. Qt is a full standalone framework it does not use any other frameworks like wxwidgets or boos or whatever.

The MuleKad implementation used std::string/std::wstring there is a interface class that handles Kad and performs the conversion form std strings to QString.

The nice thing about the MuleKad module is that aside of the said interface class it is kept entirely framework free it uses only stl so it can be easily integrated in any other project without the need of adding any additional framework.


For MuleKad the separation into modules makes only sense if your project is not GPL.
In case of qMule as far as I understand it the ed2klib is BSD and the GUI app itself GPL, meaning that the muleKad module couldnt be included directly in the ed2klib but there could be an interface so that it is linked through the GPL's gui app. A separated process would only be needed for users who want to compile the lib into an non GPL application.

The reason other kad modules are separated like neo kad is that this modules are designed to be at least in principle usable by multiple applications at once.
So The Neokad Module for example can be used for NeoLoader for filesahring stuff, and form som other app for something else, like P2P DNS or whatever, ist general purpose.


David X.

This post has been edited by DavidXanatos: 17 January 2013 - 08:10 PM

NeoLoader is a new file sharing client, supporting ed2k/eMule, Bittorent and one click hosters,
it is the first client to be able to download form multiple networks the same file.
NL provides the first fully decentralized scalable torrent and DDL keyword search,
it implements an own novel anonymous file sharing network, providing anonymity and deniability to its users,
as well as many other new features.
It is written in C++ with Qt and is available for Windows, Linux and MacOS.
0

#16 User is offline   YumeYao 

  • Member
  • PipPip
  • Group: Members
  • Posts: 16
  • Joined: 08-February 11

Posted 17 January 2013 - 08:38 PM

I see.

I know QT is a full standalone fw I mentioned wxWidgets just for comparison.

Yes, almost every C++ string type other than std::(w)string has conversions from and to std::(w)string, but in this case memory copy is performed and unnecessary overheads may take place.

Say you have:
void foo(std::string &str1);

QString bar()
{
  QString qstr1;
  ...
  // serveral processes on qstr1.
  ...

#if 1 //You may write:
  foo(qstr1);
#else //The compiler may produces:
  std::string str1 = qstr1;
  foo(str1)
  qstr1 = str1;
#endif

  ...
  // serveral processes on qstr1.
  ...
  return qstr1
}


So for performance, a single app uses only one C++ string type may win some points.

As far as I see, kademlia could be re-written without any C++ string types(std::string, CString, wxString, QString, etc.).

A C++ string type benifits following (compared to C pointer):
  • Comparing: It could be compared using '==', '>', '<', etc. , therefore could be used in maps(Consider maps is a template and if you use pointers... strings may never get compared properly)
  • Processing: It has dynamic allocating and management, therefore makes string processing much human-friendly.
  • Return Type: When used as a return type, its allocating and freeing are handled transparently, reduces the risk of memory leaking.


But as for kademlia module, it benifits none of above, that why I would vote for using C string pointers in kademlia.
0

#17 User is offline   DavidXanatos 

  • Neo Dev
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1469
  • Joined: 23-April 04

Posted 17 January 2013 - 09:04 PM

>But as for kademlia module, it benifits none of above, that why I would vote for using C string pointers in kademlia.

Well you could write a kademlia implementation that does not use c++ strings thats true (actually the Torrent DHT lob neo uses has been writen in C only). But as far as I can see you couldn't port the current MuleKad code to a string free version with any reasonable amount of afford, I think you would be faster writing a new implementation from scratch.

but here the topic is qMule, and as far as I see thay are using boost librarys and thats kind a STL on steroids, so eider it uses stl strings anyway or you could port is using only find and replace.

David X.
NeoLoader is a new file sharing client, supporting ed2k/eMule, Bittorent and one click hosters,
it is the first client to be able to download form multiple networks the same file.
NL provides the first fully decentralized scalable torrent and DDL keyword search,
it implements an own novel anonymous file sharing network, providing anonymity and deniability to its users,
as well as many other new features.
It is written in C++ with Qt and is available for Windows, Linux and MacOS.
0

#18 User is offline   intser 

  • Member
  • PipPip
  • Group: Members
  • Posts: 17
  • Joined: 16-January 13

Posted 18 January 2013 - 06:11 AM

View PostZangune, on 17 January 2013 - 11:41 AM, said:

View Postintser, on 17 January 2013 - 11:31 AM, said:

In plans:
1. IPV6 support

I hope people will work together or will use a compatible implementation

View PostDavidXanatos, on 10 January 2013 - 03:41 PM, said:

I'm looking forward to adding IPv6 support to my ed2k/eMule capable File Sharing client



View Postintser, on 17 January 2013 - 11:31 AM, said:

2. Multi servers

eMule developers idea about this

View PostUnknown1, on 20 July 2003 - 05:01 PM, said:

Features you won't see in eMule:
  • Multiple Server connections - We already talk to all the servers. Creating extra connections is just wasteful and loads the servers.
  • Server hopping - We already talk to all the servers. This is just wasteful and loads the servers.

It's really necessary?


I think it will be in libed2k as feature. GUI completely separated software and programmer can use this feature or not.
0

#19 User is offline   intser 

  • Member
  • PipPip
  • Group: Members
  • Posts: 17
  • Joined: 16-January 13

Posted 18 January 2013 - 06:19 AM

View PostYumeYao, on 17 January 2013 - 03:07 PM, said:

I love the way you seperate ed2k as a single module(I hope libed2k doesn't take extra dependencies), while I personally dislike qt because of its ugly(non-native) look and bloated overheads.

But... why is libkademlia missing? Currently kad is fairly more important than ed2k.

Also I believes the offcial eMule has a great space for performance/speed improving, and so do its mods. For aMule, I haven't checked its code too much but just from the face, it seems aMule has made some effort improving code quality.


IPv6 is great but it should have a common design of protocol extension supported by any kinds of ed2k/kad clients. I still have no thoughts on IPv6 and haven't experienced any coding on it.


@DavidXanatos:
404 error for MuleKad.rar.


libed2k it is completely separated crossplatform library for eDonkey protocol. It dependents only on boost. Kademlia is simple different library. GUI was developed on Qt, because based on qbittorrent client.
0

#20 User is offline   Neoo26 

  • Splendid Member
  • PipPipPipPip
  • Group: Members
  • Posts: 126
  • Joined: 30-September 12

Posted 18 January 2013 - 06:50 AM

With open DNS all neoloader page are working, only the forum is not working (error 404).
0

  • Member Options

  • (2 Pages)
  • +
  • 1
  • 2

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users