Voor het uitwisselen van bestanden zijn er in de loop van de tijd verschillende netwerken en applicaties ontwikkeld, zoals het Gnutella-netwerk waarop een aantal verschillende applicaties actief zijn. LimeWire is er hier één van en biedt ondersteuning aan een groot aantal besturingssystemen doordat er gebruik wordt gemaakt van de Java omgeving. De ontwikkelaars hebben de afgelopen tijd niet stilgezeten en versie 4.9.5 is daar al enkele dagen het bewijs van. Het volledige changelog sinds de laatste vermelding in de meuktracker ziet er als volgt uit:
- Fix synchronization issues in Shared Files indicator in status bar.
- Ignore lots more UDP errors.
- Don't request hash trees from people without SHA-1s.
- Fix endless recursion on in-network requeries.
- Assert that intervals are positive.
- Reduce memory needed for verifying download chunks.
- Removed possible deadlock with writing to network.
- Assert that values are within a file size when checking for hash tree corruption.
- Fixed broken interval comparison for very large files.
- Process in-network updates even if they are missing some important parts.
- Don't assume in-network update message downloads are not already started.
- Catch common errors for Windows XP and provide suggestions on workarounds.
- If the Options window is visible, don't update just-downloaded themes.
- Use theme colors in About LimeWire window.
- More small Download bug fixes.
- Better matching for XML query searches. (A search for 'Limers' now matches 'The Limers').
- More small Download bug fixes.
- Improved status bar, with new bandwidth and firewall indicators and improved shared files indicator.
- In-network upgrades. LimeWire can automatically retrieve new versions from the network.
- Media player enabling and disabling no longer requires restart.
- About LimeWire window is up-to-date, with a better architecture for internationalization.
- Show License column by default in search results and prompt when downloading a file without a license, offering the option to remember the user's decision.
- Further Library and Download bug fixes from previous beta.
- Fixed display of "downloading" and "incomplete" icons in search results.
- Subfolders are displayed in the Library table.
- Queries with license parameters now return results only with license matches.
- Various Library and Download bug fixes from previous beta
LimeWire now recognizes more types of licenses in the search results. In addition to Creative Commons licenses, which LimeWire 4.3 added, "Weedshare" licenses and arbitrary licenses in WMA & WMV files are recognized. If you enable the 'License' column you can see if any search result had a license. You can then right-click on the item and choose to 'View License' to verify the information. As if that wasn't enough, you can now right-click on any search result and choose to 'Download As', saving the file to any arbitrary location. You can also choose to search for similiar kinds of results from a new 'Search More' submenu.
In a nutshell, downloads just work better. They're faster, they're smarter, and they use fewer resources. LimeWire now has vastly improved support for large files due to a highly optimized swarming algorithm. These features will continue to speed up downloads even further in the future, as more users upgrade.
We've gone to great lengths to make sure that you don't accidentally share files you didn't mean to. LimeWire will now detect directories that are "sensitive", prompting the user to confirm that they really do want to share them. You can also now choose to stop sharing a single file from a shared folder, or stop sharing a subdirectory of a shared folder. For users who want to share files from arbitrary locations, you can also choose to share any individual file. These files will show in a special 'Individually Shared Files' item in the library. The Library tab has also been revamped to give you more control over what you're sharing while maintaining LimeWire's famous ease-of-use.
The entire messaging architecture has been redesigned and rearchitected to use less resources and less memory. Ultrapeers should notice a significant speed and memory improvement when connected to many hosts. In the future this will allow your searches to return results faster and reach more hosts.
The nitty gritty on changes:
- Changed Gnutella messaging architecture to be single-threaded (using non-blocking I/O calls).
- Heavily optimized reading & writing of messaging, from TCP, UDP & Multicast.
- Removed many unnecessary threads, allowing LimeWire to use less overall resources.
- Fixed bug where save files for multiple downloaders could conflict. LimeWire will now prompt for a new save location.
- Added many 'Save Location' features for downloads. You can now choose an arbitrary save location for any download, as well as change it at any time during the download.
- LimeWire will now let you know if the file you're downloading matches any file in the library (via a hash lookup). This is in addition to the already-existing checks that prompted you about overwriting a file.
- The library now supports sharing (and not sharing) single files and folders.
- LimeWire now recognizes "sensitive" directories, asking the user whether they really want to share that directory.
- Fixed partial file sharing to only advertise ranges that are verified as valid.
- Fixed alternate locations to be shared among shared files, incomplete files, and downloads, instead of storing duplicate copies for each.
- Optimized Gnutella connections to leaves (or from leaves to Ultrapeers) to not use as much memory, since they require less flow control support.
- Optimized query throttling & QRP tables. When LimeWire becomes busy, it now sends a message telling its Ultrapeer and/or neighbors to stop sending it queries. The Ultrapeer will remove the leaf's QRP information from the combined Ultrapeer QRP tables when sending out combined tables, if the leaf was busy.
- Added many more extensions to the list of shared extensions.
- All message processing and dispatching is now done in a single thread, which will reduce resources and contention for various shared objects.
- Proxies for downloads are now saved with the download so that firewalled hosts can be reused when restarting LimeWire.
- Any host who we succesfully connected to while downloading is saved for the future use if LimeWire restarts.
- Added support for expiring alternation locations after LimeWire sends them out too many times. This ensures that older hosts who may have left the network will fall out of memory after some time.
- Updated the default list of GWebCaches.
- Major magnet upgrades. LimeWire now can handle many more magnet links, as well as automatically opening a search tab for very ambiguous magnets.
- Fixed some errors with inflating & deflating Gnutella message traffic that could have caused the connection to drop.
- Added support for randomly downloading parts of the file when doing a download. Preference is given to the beginning of the file for files that can be previewed. This will ensure that the file is spread to many hosts, removing a single point of failure, while still allowing you to preview files as they download.
- Heavily optimized the entire downloading process, giving downloads a major speed boost.
- Requesting ranges for download from a host can now be done in parallel. Previously, LimeWire would only request one part of a file per time from any given host, reducing the speed of a download to the lowest speed of any connected source.
- Added support for verifying the integrity of a download as the download is progressing. This will fix the problem where many downloads get to 99% and then restart. This will also let you know that a download is getting many corrupt bytes and kill it before it wastes all your bandwidth.
- Fixed the progress-bar in uploads to show the correct progress for swarmed uploads.
- Optimized downloading to prefer partial sources & firewalled sources first, reducing the load on hosts who have the complete file and are not firewalled.
- Fixed many problems where downloads could have disk errors, offering the user to option to download to a new location.
- Optimized downloading to do disk I/O in a different thread than network I/O.
- Heavily optimized downloads by pinging possible sources prior to connecting. LimeWire will connect to hosts who respond to the ping first, as well as learn about other potential sources and whether or not the responding host was available for uploading.
- Added entries to the library's popup menus that easily allow you to stop sharing or start sharing one of the files or folders.
- Added the ability for downloads to be saved to different locations based on the media type of the download.
- Added new 'Saved Folder' entries to the library that show the saved files in the different media type saved folders.
- Added recognition of "Weedshare" licenses. These are WMA/WMV/ASF files that are freely shareable and licensed to allow three free plays, after which you can purchase the file. You'll get a cut of the profit from any other person who purchases a file that you've shared after purchasing it. Enable the 'License' column in search results to see these kinds of files.
- Added recognition of WMA/WMV/ASF files that require license lookups prior to playing. Enable the 'License' column in search results to see these kinds of files.
- Added the ability to parse OGM, AVI, WMA, WMV, ASF and FLAC files for metadata.
- Revised the sizes for Tiger Trees at different file size depths to ensure that validating downloads uses sane block sizes.
- Disallowed a ':' character in search results on OSX.
- Fixed some leaked Sockets if LimeWire was set up to use HTTP or SOCKS proxies.
- Updated the schemas for Audio and Video searches, removing unnecessary fields and improving the order of remaining ones.
- Added the ability to stop sending bugs to LimeWire's bug server for older LimeWire versions.
- Improved the Internal Error dialog.
- Massively improved the autocompletion, using a dropdown box that allows you to choose from any possible completion. You can also delete your autocomplete history at any time, without restarting LimeWire.
- Fixed deadlock in DAAP, for streaming tunes to iTunes.
- Require Java 1.4 for using LimeWire.
- Fixed multi-line labels to expand to the largest unbreakable phrase.
- Added the ability to use installed Java Look & Feels other than LimeWire's Themes or the system Look & Feel.
- Fixed many issues with standard list editor components (lists that can be added or remove to) and allowed more keyboard actions.
- Added the ability to send magnet links of search results or files in the library to the clipboard, for pasting elsewhere.
- Added the ability to start a search for files that are similar to a search result, a file in the library, or an item in a search filter box.
- Cleaned up the Chat window.
- Cleaned up the Connections tab, changing the 'add' feature into a button that prompts for further input, and fixing many spacing issues.
- Added more information to the advanced tooltips in downloads.
- Added many more integrity checks prior to starting a download from a search result, offering the user the option to save to a new file if it is going to overwrite an existing one, as well as many more options.
- Revamped much of the library, making it more intuitive and easier to use.
- Fixed some tray icon bugs on Linux. LimeWire should now show up correctly in the system tray.
- Sped up the 'Options' dialog appearing. Inidividual options items are now lazily loaded as you click on them.
- Added the ability to choose if you want to receive upgrade notices for Major upgrades, Beta upgrades, or Service releases.
- Added tooltips to the main 'Search Types' in the Search tab.