⚠ Heads up! Upgrading might cause your selected language to be reset - this is due to how I moved from language ID's to locales. I don't think it is a major issue as we now do a better job of selecting the default language.
The main feature this release is probably the 'Create torrent' dialog. Until now, PicoTorrent has been mostly focused on consuming torrents - i.e there hasn't been a way to create your own torrents without using another client. This is now fixed and the new dialog is quite basic but it supports the basic features needed to create v1, v2 and hybrid torrents. We default to hybrid torrents as we want to see BitTorrent 2.0 grow, however we recognize the need for users to keep compatibility with previous versions as well :)
Settings for everyone
The preferences has been rewritten as well - we now support the concept of default settings, allowing a user to restore most of the settings to their default value. This does not apply to listen interfaces, though, since they are stored differently and it's also easier to edit them.
There has been a few requests to expose all libtorrent settings in an advanced section of the preferences. While I might agree personally that this would be a cool idea, I think it's a better idea to slowly introduce requested settings. There are a few PicoTorrent settings which are not visible in the advanced section which will be added in an upcoming version.
A major internal feature for this release is that I've moved the bundled translations from embedded JSON files in the executable, to a separate SQLite database which is created as a part of the build process. The translations are also renamed from language ID's to their locale-Country counterpart. This however, will cause your selected language to be reset. The language selection code has been improved so the chances of you getting the same language in PicoTorrent as on your OS (if available, that is) is greater.
One thing I want to mention is also that I set up Crowdin to make it easier for contributors to translate PicoTorrent. It worked nicely, but has since been replaced with our own Weblate instance because of data usage reasons.
Crowdin has the right to use contributed translations in their machine learning platform, which we might not want.
Apart from that, translations for French, Russian and Indonesian has been updated. It's awesome to see support for this from the community! ❤
I've rewritten the torrent file tree functionality to fix a few bugs I found. If one added a torrent which had a file in a folder with the same name as the file, it broke.
There was a few issues with preloading magnet links which has been fixed as well.
Here's a few features I'm currently working on and will send pull requests for as soon as they're ready to be revealed.
A new installer
I'm rewriting the PicoTorrent installer. It uses the default WiX Burn application to bootstrap the installation process. The new installer will add a custom UI to this which will allow users to skip downloading of dependencies and such. It will also support high DPI displays and be simpler. The EULA has been removed - it's not the 90's anymore!
I mentioned in the previous release notes that IP filtering and HTTP remote control would be nice to have. There might be some scope change as I want to add label support before HTTP remote control support.
I'm also starting to plan for a 1.0 release as well. There are a few things I want to add first - such as IP filtering and label support mentioned above.
I wish we had the Discussions feature on GitHub which would make it easier to discuss upcoming features outside of creating issues.
I think I mentioned all the important stuff, which makes this the end. If anything arises, I'm trying to be responsive on both Twitter - either @viktorelofsson or @PicoTorrent, whatever you prefer. You can also create issues on GitHub even though it isn't strictly an issue! I'm always open for suggestions, feature requests and general feedback.
As always, if you like PicoTorrent and want to support its development, sponsoring me on GitHub is always an option! 🦔