Giter Club home page Giter Club logo

torrust-actix's People

Contributors

dependabot[bot] avatar power2all avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

torrust-actix's Issues

Defragmentation of BTreeMaps

I noticed a high memory usage after a while, and this is because the BTreeMap get fragmented after a while.
Going to work on a custom block system for the BTreeMap, so that I can make a thread that will clean up the fragmentation every often, without locking up the system too much.
A proof of concept will be worked on for version 3.1.2

Improving the dead peers scanner

As title says.
Need to divide up the torrents metadata and the peer data in their own separate btreemap.
This would increase the scanning of dead peers, since torrents that are not "alive" with peers, will not need to be scanned anyway, but only retain their completed downloaded number.

Complete overhaul of the code, after discussion with friends

Had a big discussion with friends on vacation.
Eventually, I will rewrite a huge chunk of the code, and splitting up things for easier maintainability.
Hopefully I can also clean up bad code chunks to improve the system, and adding commentary in the code.
This needs to be done, but I need time to work on this.

[v3.2.0] Adding support for "plugins"

Working out the first iteration of a plugin system.
A new 'plugin' folder will be available, where you could put in your own 3rd party code for the tracker.
More documentation will be written how this could be used for your preferences, and would be helpful for trackers used with private sites and such.

Broken UDP IPv4 handling

I noticed UDP IPv4 is not working as expected.
Probably found the typo, but will be testing first before I release a 3.1.1, also trying to fix the duplicate code to improve readability.

[v3.2.0] Replace RwLock with Crossbeam Channel, for performance reasons

I have noticed performance problems with RwLock in the longer run.
After debating, I'm going to switch to Crossbeam Channel, as this does block (aka, "lock") the variable through a bounded channel, so that each variable being maintained by a rwlock, have their own channel without interfering with each other.
This is a huge rewrite of the implementation, and will take some work and testing.

Adding WebTorrent support

Currently we are in the process of implementing WebTorrent support to Torrust-Actix.
This implementation will be made for version 3.2.2.

Refactoring

For version v3.1.1 I will be doing some refactoring of code.
Lot's of duplicate blocks need to be solved into their own little functions, but I was lazy with writing so I noticed :)

Users not saved

I'm trying to understand how it works. I have persistence, whitelist, keys and users set to true.
I've added a hash to whitelist, tried to announce to the tracker, to make it work I have to add a key through the api and then says working and it adds a record in the torrents table, yet nothing is persisted in the keys table.
I tried to add a used through the API, says "OK", but also not persisted in the DB.

Can someone help me understand how it works? How to persist users. Now after I add a key and use it, if I stop the client, the key is lost.

[v3.2.0] Adding memory efficiency

Using some crates which help improving memory usage.
Noticed most of the memory leakage, comes from the pushing of data to SQL for persistency.
Also, some other improvements could be done with the btreemaps, using 3rd party crates.

Get info of file from torrent hash

Any way to create api like this from tracker which give file info example:

https://tracker-info.mirrorbay.org/scrape/D71A9D5708A2F1D1F658492189F7F18D5E1FB6AB?fetchData=true

give info in json like:
{"announce":["udp://tracker.opentrackr.org:1337/announce"],"infoHash":"d71a9d5708a2f1d1f658492189f7f18d5e1fb6ab","complete":54,"downloaded":450,"incomplete":28,"name":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST","magnetURI":"magnet:?xt=urn:btih:d71a9d5708a2f1d1f658492189f7f18d5e1fb6ab&dn=Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce","files":[{"name":"2_eng.srt","size":5337,"path":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST/Subs/2_eng.srt"},{"name":"3_eng.srt","size":155365,"path":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST/Subs/3_eng.srt"},{"name":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST.mp4","size":2508444746,"path":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST/Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST.mp4"},{"name":"Encoded by KONTRAST.txt","size":1432,"path":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST/Encoded by KONTRAST.txt"},{"name":"[TGx]Downloaded from torrentgalaxy.to .txt","size":715,"path":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST/[TGx]Downloaded from torrentgalaxy.to .txt"}]}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.