Skip to content

quantumelixir/Taipei-Torrent

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Taipei Torrent

This is a simple command-line-interface BitTorrent client coded in the go programming language.

FAQ:

Q: Why call it Taipei Torrent?
A: I started writing it while visiting Taipei, Taiwan

Q: What is the license?

A: The code in the bencode subdirectory is controlled by the LICENSE file in that
directory.

The code in the http subdirectory is controlled by the standard Go Authors license.

The code in the rest of Taipei Torrent is controlled by the LICENSE file in the
top level.

Q: Why do you have your own copy of the http package?

A: The UPnP client needs additional APIs that aren't supported by the standard http
package. I proposed the additional APIs as extensions to the standard http package,
but they were rejected because the http package is being redesigned. So for now I'm
using my own patched copy of the http package. When the standard http package has been
enhanced to support the features that UPnP needs I'll get rid of this patched version.

Current Status

Works, at least for some torrents.

Development Roadmap

+ Implement choke/unchoke logic
+ Full UPnP support (need to be able to search for an unused listener port,
  detect we have already acquired the port,
  release the listener port when we quit.)
+ Clean up source code
+ Deal with TODOs
+ Add a way of quitting other than typing control-C

Build Instructions
  bash make.bash

BUGS
- Need to understand why some peers are sending 16K "port" messages.


About

A(nother) Bittorrent client written in the go programming language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.6%
  • Shell 0.4%