diff --git a/README.md b/README.md index a61bab0f..41eb8478 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,11 @@ +![crates.io](https://img.shields.io/crates/v/rqbit.svg) +![crates.io](https://img.shields.io/crates/v/librqbit.svg) +![docs.rs](https://img.shields.io/docsrs/rqbit.svg) + # rqbit - bittorrent client in Rust **rqbit** is a bittorrent client written in Rust. -## Motivation - -First of all, I love Rust. The project was created purely for the fun of the process of writing code in Rust. - -I was not satisfied with my regular bittorrent client, and was wondering how much work would it be to create a new one from scratch. - -Got it to the point where it downloads torrents reliably and pretty fast, and I was using for a few months myself. It works good enough for me, and at the moment of writing this I'm not planning to extend it further. - -So in short, it's not "feature complete", but rather "good enough for my use-cases". - -Open sourced it just in case anyone might find it useful and/or wants to contribute. - ## Installation There are pre-built binaries in [releases](https://github.com/ikatson/rqbit/releases). @@ -71,6 +63,7 @@ Use a regex here to select files by their names. - Selective downloading using a regular expression for filename - DHT support. Allows magnet links to work, and makes more peers available. - HTTP API +- Web UI ### Code features - Serde-based bencode serializer/deserializer @@ -80,23 +73,11 @@ Use a regex here to select files by their names. - No unsafe ### Bugs, missing features and other caveats -Below points are all easily fixable, PRs welcome. +PRs are very welcome. -- Doesn't survive switching networks, i.e. doesn't reconnect to a peer once the TCP connection is closed. - Only supports BitTorrent V1 over TCP - As this was created for personal needs, and for educational purposes, documentation, commit message quality etc. leave a lot to be desired. -## Code organization -- crates/rqbit - main binary -- crates/librqbit - main library -- crates/librqbit-core - torrent utils -- crates/bencode - bencode serializing/deserializing -- crates/buffers - wrappers around binary buffers -- crates/clone_to_owned - a trait to make something owned -- crates/sha1w - wrappers around sha1 libraries -- crates/peer_binary_protocol - the protocol to talk to peers -- crates/dht - Distributed Hash Table implementation - ## HTTP API By default it listens on http://127.0.0.1:3030. @@ -112,7 +93,8 @@ By default it listens on http://127.0.0.1:3030. "GET /torrents/{index}": "Torrent details", "GET /torrents/{index}/haves": "The bitfield of have pieces", "GET /torrents/{index}/stats": "Torrent stats", - "POST /torrents/": "Add a torrent here. magnet: or http:// or a local file." + "POST /torrents/": "Add a torrent here. magnet: or http:// or a local file.", + "GET /web/": "Web UI" } } @@ -133,3 +115,25 @@ Supported query parameters, all optional: - only_files_regex - the regular expression string to match filenames - output_folder - the folder to download to. If not specified, defaults to the one that rqbit server started with - list_only=true|false - if you want to just list the files in the torrent instead of downloading + +## Web UI +Access with http://localhost:3030/web/ + +Web UI + +## Code organization +- crates/rqbit - main binary +- crates/librqbit - main library +- crates/librqbit-core - torrent utils +- crates/bencode - bencode serializing/deserializing +- crates/buffers - wrappers around binary buffers +- crates/clone_to_owned - a trait to make something owned +- crates/sha1w - wrappers around sha1 libraries +- crates/peer_binary_protocol - the protocol to talk to peers +- crates/dht - Distributed Hash Table implementation + +## Motivation + +First of all, I love Rust. The project was created purely for the fun of the process of writing code in Rust. + +I was not satisfied with my regular bittorrent client, and was wondering how much work would it be to create a new one from scratch, and it got where it is, starting from bencode protocol implemenation, then peer protocol, etc, etc. \ No newline at end of file diff --git a/crates/librqbit/webui/src/index.tsx b/crates/librqbit/webui/src/index.tsx index 581a3cf0..c305c186 100644 --- a/crates/librqbit/webui/src/index.tsx +++ b/crates/librqbit/webui/src/index.tsx @@ -394,14 +394,6 @@ const Buttons = () => { ); }; -const LastErrors = (props: { lastErrors: Array }) => { - return
- {props.lastErrors.map((e: ErrorType) => ( -
- ))} -
-} - const RootContent = (props: { closeableError: ErrorType, otherError: ErrorType, torrents: Array, torrentsLoading: boolean }) => { let ctx = useContext(AppContext); return <>