summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent
AgeCommit message (Collapse)Author
2013-06-10~ Sketch of high level API.Sam T
2013-06-09~ Hide *.Protocol modules.Sam T
2013-06-08+ Add some docs.Sam T
2013-06-08~ Merge Status into Protocol.Sam T
2013-06-08~ Fix build fail after renaming.Sam T
2013-06-08~ Rename PeerWire to Exchange.Sam T
2013-06-08~ Minor changes.Sam T
2013-06-08~ Merge Block and Handshake into Protocol.Sam T
We could provide better api this way. Also this refactoring should reduce compilation time.
2013-06-07~ Rename Message to Protocol.Sam T
2013-06-07~ Fix bitfield encoding.Sam T
2013-06-07~ Merge Encoding to Main.Sam T
2013-06-07~ Throw exception in askTracker.Sam T
HTTP client functions throws an exception. If we unable to decode result we return BEncode.Result.Left. So user of this function should check both kinds of errors and this complicate usage. Instead of this we throw IOException too.
2013-06-07~ Polish documentation for Tracker.Protocol.Sam T
2013-06-07~ Use bytestring stream in tracker communication.Sam T
stringBufferOp is defined in terms of strictBuffer op. So we previously we have convertion from strict bytestring to string and then manually pack string back to strict bytestring to with BC.pack. We could avoid this unnecessary convertion by just using bytestring streams. http://hackage.haskell.org/packages/archive/HTTP/4000.0.9/doc/html/Network-BufferType.html#v:stringBufferOp
2013-06-06- Remove Peer.* modules.Sam T
I do not expect that this modules will grow later, so they are merged with Network.BitTorrent.Peer now. We also avoid one "reexport only" module this way.
2013-06-06~ Rename package to bittorrent.Sam T
It seems like 'network-bittorrent' is too long and annoying: everyone knows that bittorrent is a network protocol and there is no purpose to prefix it with 'network'. Moreover hackage do not have package with the our new name. So I think just 'bittorrent' is a more suitable name for the package.
2013-06-02~ Use pretty package for pretty print.Sam T
This is a bit faster and pretty!
2013-06-02~ Merge InfoHash to Torrent.Sam T
This allow to provide better interface.
2013-06-02~ Use IntSet instead of ByteString for bitfields.Sam T
There are several reasons for this: * IntSet is stored in ordinary heap, while ByteStrings in pinned memory; * Our IntSet's should be much faster 90% time. (in typical BT client) Hovewer in worst case IntSet is slower, but difference should is not so big. (We should measure this although) * It's pure, tested, error-free and much more convenient. Moreover we have kill a lot of ugly code!
2013-05-25~ Use PortNumber instead of Word16 in Port message.Sam T
2013-05-17~ Reorganize modules.Sam T
2013-05-10~ Minor changes.Sam T
2013-05-08~ Fix handshake.Sam T
2013-05-08+ Add capabilities.Sam T
2013-05-06+ Add Peer.Status module.Sam T
2013-05-06+ Add naive selector detection.Sam T
2013-05-05~ Fix message length bug in handshake.Sam T
2013-05-05~ Move bitfields to Data.Sam T
2013-05-05+ Add bitfield completeness function.Sam T
2013-05-05~ Minor changes.Sam T
2013-05-05+ Add some benchs.Sam T
2013-05-05+ Add Selection module skeleton.Sam T
2013-05-05~ Performance improvements: binary bitfield operations.Sam T
2013-05-04+ Performance improvement in findMax & findMin.Sam T
2013-05-03+ Add other bitfield operations.Sam T
2013-05-03+ Add some bitfield operations.Sam T
2013-05-03~ Reorganize modules.Sam T
All peer location & identification & information stuff should be placed in Network.BitTorrent.Peer now.
2013-05-03+ Add bitfield module.Sam T
2013-05-01~ Fix documentation and typos.Sam T
2013-05-01~ Add documentation to client info.Sam T
2013-05-01~ Fix documentation markup.Sam T
2013-04-26~ Fix Wall suggestions.Sam T
2013-04-26~ Fix hlint suggestions.Sam T
2013-04-26~ Starting separating protocol and high level api.Sam T
It will be more convenient to provide high level api and raw protocol separated. In many use cases we don't worry about protocol but need some simple things like track swarm/peer state. So I think it will be better to refactor library in the following way: 1. Network.BitTorrent.Tracker.Protocol, Network.BitTorrent.PeerWire.Protocol For raw protocol definitions, documentation and serialization. 2. Network.BitTorrent.Tracker Network.BitTorrent.PeerWire For convenient API. Though we should not restrict user to in some particular way, so high level api should be flexible enough. In other words: mechanism, not policy/framework.
2013-04-25~ Add handshake info hash check.Sam T
2013-04-24+ Add handshake pprint.Sam T
Move Peer to separated module since otherwise we have recursive module dependencies.
2013-04-24~ Export ClientInfo module.Sam T
2013-04-24+ Add client detection.Sam T
2013-04-24+ Add message and block pprint for logging.Sam T
2013-04-24+ Add BEP 6 messages.Sam T