v0.6.0, overall, tries to make magnetico more stable rather than
introducing new features.
## magneticod
* Removed better_bencode internal fork (but we are still using it so no
loss at performance). This has caused some issues for some users and
this release should solve the issue (e.g. #98).
* General cleanup, performance improvements, minor bug fixes...
* Most notably among all, we improved our still-primitive congestion
control support for BSD-based OSes, including OS X.
## magneticow
* There are no changes in magneticow, but version number is bumped to
stay in-sync with magneticod.
Phew, what an effort it was to ship magnetico out this time!
CHANGELOG
=========
magneticod
----------
* Thanks to @richardkiss' heoric effort, magneticod now is ported to Python's
asyncio (and uses uvloop for further performance improvements).
CPU usage is reduced by 60%, and many older bugs are eliminated: #3, #55, #61
* Switched to better-bencode from bencoder.pyx for performance reasons. CPU
utilization dropped by half.
magneticow
----------
* magneticow is finally became _fast_! Database indexes are created to speed-up
file-list page (i.e. torrent info) and statistics.
Thanks to everyone who were involved in contributing to this release!
Special thanks to @ad-m who has been nagging me day and night to make me
take informed decision, I appreciate that.
Changes are below.
magneticod:
* Performance improvements
* Unregistering WRITE event when possible
* Using files instead of memory for temporary SQLite
objects
* Stability improvements
* Limit metadata size to prevent crashes due to
malicious or malformed answers.
* Flushing metadata buffer while exiting gracefully
magneticow:
* Stability improvements
* Homepage crash due to count functionality when the
database is empty, is fixed.
* Statistics page added, although very slow!
Previously magenticow calculated 30-days period as
literally 30 days (30 * 24 * 60 * 60 seconds) from NOW,
which was counter-intuitive for the user as it did not
correspond to whole days. Now that is fixed.
magneticod:
* Stalled DisposablePeers are shut down after 120 seconds (fixes#47 and #38)
* Improved performance, thanks to @ngosang, @ad-m, and all other contributors (fixes#48)
* Default logging level is now set to INFO (since many users would freak out after seeing "peer failed" messages...)
magneticow:
* Search speed improved A LOT, like "A L O T"! (fixes#8)
(for the curious, the problem was that magneticow initialised database *every* *single* *time* a request is made because
"the global application context" (`flask.g`) didn't work for some reason I don't know. Now it's blazing fast!
* A bit of logging added to assist the user. This is especially important as magneticow now takes a bit of time to initialize itself
(as reasonably expected) and will not be able to handle any requests until it's complete.
* A faster but possibly less accurate (and not-guaranteed behaviour dependent) calculation of the number of torrents.
* Thousands separator for the torrent count in the homepage.
## Changes
### mangeticod
* Cython-based bencoder.pyx is used instead of our own pure Python solution.
* `--node-addr` commandline argument added.
* TCP QUICKACK is automatically enabled (instead of by default) so that magneticod can work on macOS as well.
* Database index added for `info_hash` column of `torrents` table.
### magneticow
* Some small performance improvements for search.