Skip to content

starch0/elixir_bittorrent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TorrentManager

**TODO:

  • consertar essa todo list**

1. Estrutura Básica do Torrent

  • Criar struct básica
  • Ler arquivo .torrent
  • Extrair informações básicas

2. Melhorar a Struct Torrent

  • Adicionar info_hash (necessário para o tracker)
  • Adicionar pieces (lista de hashes das peças)
  • Adicionar piece_length (tamanho de cada peça)
  • Adicionar lista de arquivos para torrents multi-arquivo

3. Comunicação com Tracker

  • Criar módulo TrackerClient
  • Implementar conexão HTTP com tracker
  • Gerar peer_id único para identificação
  • Montar URL de announce com parâmetros:
    • info_hash
    • peer_id
    • port
    • uploaded
    • downloaded
    • left (bytes restantes)
  • Decodificar resposta do tracker
  • Extrair lista de peers

4. Gerenciamento de Peers

  • Criar módulo PeerConnection
  • Implementar conexão TCP com peers
  • Implementar handshake inicial
  • Gerenciar mensagens do protocolo BitTorrent:
    • choke/unchoke
    • interested/not interested
    • have
    • bitfield
    • request
    • piece

5. Download Manager

  • Criar sistema de peças pendentes/completas
  • Implementar verificação de hash das peças
  • Gerenciar download paralelo de múltiplas peças
  • Salvar arquivos no disco
  • Implementar pausa/retomada de downloads

6. Interface de Usuário

  • Criar comandos básicos:
    • adicionar torrent
    • listar torrents
    • ver status
    • pausar/retomar
  • Mostrar progresso do download
  • Mostrar velocidade de download/upload
  • Mostrar peers conectados

7. Extras (Para Futuro)

  • Suporte a DHT (Distributed Hash Table)
  • Suporte a magnet links
  • Configurações de largura de banda
  • Sistema de prioridade de arquivos
  • Interface web

Installation

If available in Hex, the package can be installed by adding torrent_manager to your list of dependencies in mix.exs:

def deps do
  [
    {:torrent_manager, "~> 0.1.0"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/torrent_manager.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages