Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/alanmcgovern/monotorrent

The official repository for MonoTorrent, a bittorrent library for .NET
https://github.com/alanmcgovern/monotorrent

Let's play with github pages

53ff056ad499c0162db4108f93e502bfb07be3a1 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Clean up some InfoHash code

Target a 'FromMagnetLink' method for removal.
If we have a magnet link we should use the
MagnetL...

23a6ae84b33dc8b0f1cddcccab921e48786f420b authored over 4 years ago by Alan McGovern <[email protected]>
[build] Bump version to release StreamProvider

b27a1a1059bd5aef84b04565e1ad55c8e1728f5e authored over 4 years ago by Alan McGovern <[email protected]>
Fix nuget packaging after LICENSE file rename

502a76ff71648f68eae14fdf64a266ccc00b7a4e authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add prebuffering and CancellationTokens to StreamProvider

Ensure we download the first and last pieces before giving the user
the Stream. This means a str...

d47d734ad8b09c0100b19e44e51c1147916ba6d7 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add the ability to wait for metadata to download

StreamProvider can only work when we know which file
needs to be streamed. Add a simple way for ...

4e1b5a4baeba168be8a8a654135bb099d71abe97 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add tests and make StreamProvider functional

Most of the corner cases should be tested! I tweaked
several internal aspects of the library to ...

629697e896e612c54d4a891454c8ff516ad8ccc0 authored over 4 years ago by Alan McGovern <[email protected]>
[Core] Update API to hide the fact a TorrentManager is needed.

a25155ba9f99f5d304e0b801acbd7f763ca163c4 authored over 4 years ago by Alan McGovern <[email protected]>
Revert "[core] Keep StreamProvider internal for now"

This reverts commit 615e6872e731b65fe896d834117d9a607451cdfc.
I'm going to finalise the API and ...

c23558c45c5e57832e58c9651fb423e0046b06cc authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add comments on all the new public methods

Hopefully this will make it easy to understand how
to use this class :)

180c6be8e48a108dddac3e51e9b503660a2d57df authored over 4 years ago by Alan McGovern <[email protected]>
Clean up license file for robots

Now it can more easily (and properly) be detected as MIT licensed code.

f6557463add1a93983ea581a372f61790870fa12 authored over 4 years ago by BigBlueHat <[email protected]>
[core] Three small code hygiene changes

c438bdc9e363e7f297bbb7c81a873be1e45dfe9b authored over 4 years ago by Alan McGovern <[email protected]>
[core] Simplify [Announce|Scrape]Parameters cloning

This also adds an internal WithCancellationToken
method.

I should do it as two commits... but...

c04864fbcb0d4340c218d2f59f3f898265897243 authored over 4 years ago by Alan McGovern <[email protected]>
[core] await the return value of WhenAny

We need to do this in order to throw any stored
exceptions.

01ed8a0211d7f7242b3603d03b59dd2ae61ce35e authored over 4 years ago by Alan McGovern <[email protected]>
[core] Don't error when stopping torrents in MetadataMode

Torrents in MetadataMode do not have torrent metadata and
so will have a null 'Torrent'. Don't t...

85de00f9259cbe3e7f0ab296336aa22b16023919 authored over 4 years ago by Alan McGovern <[email protected]>
[build] Bump the version number

12b9b4fde9db1f63da885b5fc5cf11491022a034 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Remove first-run exceptions

We don't *have* to throw and catch exceptions when
loading these files. We can check if they exi...

528ac5b4ecde5d769352c56da0a2a5afa87587a7 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Relax the constraint that peerids should match

If the tracker gives us a peerid we should not *required*
the peer to have the exact same peerid...

2e70bd204eec458f7f922c2b1489640d07bbec55 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Reduces exceptions thrown by TryLoad

Ensure a file exists before trying to load it. This
reduces the amount of exceptions thrown, whi...

29377af6cb0a45764e4bf275e3d3785250ce06e6 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Make it easier to download torrent metadata

Add a method on ClientEngine which allows someone to
download the metadata for a torrent without...

30058de7eedcd5a3c0624a2fd13221b1d4e70758 authored over 4 years ago by Alan McGovern <[email protected]>
[tests] Add tests covering PeerIO speed monitoring

Ensure we properly allocate data/protocol bytes sent/received.

d78d5527591e1ccca54f7027aca9a4173e4ff5bb authored over 4 years ago by Alan McGovern <[email protected]>
Fixing ProtocolUp counter

9b158b2450a9d292666ac369ba3bb6919035b769 authored over 4 years ago by Aleksey Vlasenko <[email protected]>
[core] Add two states to the TrackerState enum

Add an 'Unknown' state to represent when we haven't
sent an announce or scrape request to a trac...

aeafae66771947937698fbd8d59f0228f8bcd053 authored over 4 years ago by Alan McGovern <[email protected]>
[build] Update for the next release

Let's release this as stable

b28e6df3ddae7835fd8c5a95dd04a5d6dcf78b4e authored over 4 years ago by Alan McGovern <[email protected]>
[core] Keep StreamProvider internal for now

615e6872e731b65fe896d834117d9a607451cdfc authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add some over-read protection

If a player requests too much data, clamp the request
and only return the data we have.

920817f367f36d0b093d75f7680674272444f51a authored over 4 years ago by Alan McGovern <[email protected]>
Add more tests for StreamingPiecePicker

23abf8171443df53fed5439348e0065af6d574e6 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Explain why why FileStream is used

We don't want to use the short-lived TorrentFileStreams from
the DiskManager class as those can ...

af204854269df2c06a8d15aba71fef4e4d1ff43d authored over 4 years ago by Alan McGovern <[email protected]>
[core] Begin adding tests for StreamingPiecePicker

ff68ee49df3bec69899cf15620cc131ce68fbae6 authored over 4 years ago by Alan McGovern <[email protected]>
Add more tests

8a522fdd0c21c138d1d5b5455caccc3558045b67 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add a way to stream media while downloading

This is a built in way to stream media while it is
actively being downloaded.

This feature supp...

fed2404ea62479ef7b18fd4771ace1a77f895170 authored over 4 years ago by Alan McGovern <[email protected]>
[build] bump for an alpha level release

f23f93ce45d2de4487baeb168a749f0c5f9e37d3 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Announce to all Tracker Tiers concurrently

This is the intent of the spec. The fact MonoTorrent did not do
this before is a bug.

Fixes htt...

b2976a0259ec3d613b2df4f186c877426a50e2eb authored over 4 years ago by Alan McGovern <[email protected]>
[core] Move DNS lookups to the threadpool

Don't let these accidentally run on the main client loop.
If the DNS server is slow to respond i...

d14b4ba1dd904baafa93da16a3d835f10c44faf7 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Ensure crypto is not on the engine thread

Push all the socket crypto work to a background thread.
While it's not a lot of CPU time, it's s...

aa7a282d6d41c4b34fc86f2098ae32eceef51abb authored over 4 years ago by Alan McGovern <[email protected]>
[core] Don't try to invoke null handlers

We can fastpath the async invoke codepaths for cases
where no event handlers have been attached....

27dad87b93e7b9695e374d998a4df26bcf7bce7c authored over 4 years ago by Alan McGovern <[email protected]>
[core] Update bitfields faster when hashing

When we're hashing torrents with hundreds or thousands of files
we can update the bitfield more ...

21e5895a5443ff6a3610626990ad7170dfe32ffa authored over 4 years ago by Alan McGovern <[email protected]>
[core] Reduce allocations invoking events async

Save a fair few allocations when emitting a lot of
async events. Should reduce time spent in the...

483f2c08f44c458f8f75328ceb385ef5a56c9448 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add simpler constructors

ClientEngine and TorrentManager can be instantiated without
forcing people to pass in a settings...

cad1123c08423394a10c66ef4ad9c956f2ed45d7 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Keep throwing FormatExceptions when xt missing

This was not part of my previous push, oops. It ensures
the same type of exception continues to ...

b8586ed8a52385c27c832cad84959db4918d1557 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Ignore all unknown parameters in magnet links

Realistically websites could add any number query parameters
to the link, so we should just igno...

2620d8f92c31901e5510614aa8173beafae95ad2 authored over 4 years ago by Alan McGovern <[email protected]>
Changed FromUri method in MagnetLink.cs to throw FormatExpception if number of '=' is correct only if not an AddressTracker (in this case the "tr" will be ignored)

aa5f6a8e607e57215c8e800ea0b2cd961d36424e authored over 4 years ago by Andrea Mellini <[email protected]>
[core] Add tests around BEncodedString

8b94c1e47fa896cd945b19e34835d5bb87a4ae08 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Split BEncodedValue decoding out

The logic is all shared in one class now.
As part of this there was a mild refactoring
of the lo...

1ff8dceac7590d758e647e5e94abc427be18c174 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Optimize allocations while reading 1 byte

We can reuse the 'peek' buffer when reading 1
byte at a time to avoid lots of unnecessary
additi...

9b483d44a4f6fdfaca43094865f07e7962b027c3 authored over 4 years ago by Alan McGovern <[email protected]>
Propagate "piecesHashed, totalToHash" parameters to PieceHashedEventArgs constructor

c3ab926c4f740b630c1c5db3ddd59e4da0dba47a authored over 4 years ago by Andrei <[email protected]>
[core] Add a progress counter when hashing

Users can tell how complete the hashing progress is. This takes
into account the fact that files...

846a37c186a00d5ac7d1cfdded9d012458322ab4 authored over 4 years ago by Alan McGovern <[email protected]>
[build] Bump to 1.0.15 for the next release

ea99919d95de8a659fe2089b967600e1437f8e04 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add batching to LocalPeerDiscovery.Announce

The LPD code should take into account the fact that multiple torrents
may announce in a relative...

5c6f87b72101d269d0bbd51cbb2ab11d87a3ad3b authored over 4 years ago by Alan McGovern <[email protected]>
[sample] Use Torrent.LoadAsync in the sample

5554f454532cbb40022840aec3e4449b12fbec95 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Remove a dead variable

Thanks to vlasenkoalexey for the original patch.

1bdb99a2dc3ac34ec4f1ddf98797c12561876446 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add async methods for loading torrents

If you're loading torrents in a UI application you nearly
definitely want them to load without b...

7a9e01b9cd06eeaa51bb7604f20e689bf1ec417b authored over 4 years ago by Alan McGovern <[email protected]>
[core] Move some Web operations to the threadpool

The profiler shows these as being potentially slow operations,
so ensure we bounce them to the t...

06c1eb0ee14af1173eecfe140c299f96cd985f19 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Gracefully handle unsupported webseeds

If it's not HTTP or HTTPS we'll simply ignore the url and move
on.

885fc3432ee00a59d791ee1eb617f2d0db342c0e authored over 4 years ago by Alan McGovern <[email protected]>
[core] Support HTTP and HTTPS connections

Oops :p

86d43bcbaf4b94d03c89d02ccba4bf3f1b024671 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Move potentially blocking calls to the threadpool

Ensure this executes on a threadpool thread to reduce the
chance of the UI thread, or main monot...

6bbd3fc9d30c33d74708912b5e5dd81135d63bf7 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Prefer named tuple syntax over ValueTuple

It allows naming the various parameters, which makes
it much easier to consume tuples throughout...

206d614a9228908783625a282b7844de8a36be11 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Optimise memory for TorrentFile

Rather than storing one bitfield per TorrentFile just
to represent the start/end piece, we can u...

9d2d912999f7bc06b6144c73ab7f4a4d0c4987b5 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Move a local method to be a cached static delegate

I thought .NET optimised static local methods passed
so that when they were passed as a delegate...

e8d60bff442783bbd9f07d74923dd2fa00be8dac authored over 4 years ago by Alan McGovern <[email protected]>
Added financial contributors to the README

8cdfb95bb163b9091eb44301d18879674c416f80 authored over 4 years ago by Jess <[email protected]>
Update README.md

0f5688c4965424a0fe8bed3202470cf3c73369b5 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Refactor DiskManager.FindFileIndex

Clarify the names of parameters and slightly simplify the
logic.

Patch primarily by @ilyalatt, ...

e01e537901deb8f4efa5c664ac9c0c8f2c77cd1b authored over 4 years ago by ilya latushko <[email protected]>
[core] bump to 1.0.14 for release

98f2dfee9a591376d872b50683fa42cb3f708f10 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add allocation-free BinarySearch overloads

These overloads allow passing a state object, which
means we can pass a ValueTuple and have allo...

a544a28c4cbb29d9cd6d1726892188b5d2722029 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Do not disable executioncontext flow

This breaks under some versions of UWP because it
has a bug.

https://github.com/dotnet/corert/i...

15a290d6966eaf7c18b73730d76caa4724c70429 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add some debugger pretty printing

d5ffede75f1a0a0fac89bb524bf73b861f1773f4 authored over 4 years ago by Alan McGovern <[email protected]>
[build] Add a simple way to make nupkgs on windows

62c86c563d51228648ba23aea6d071dea5d447cc authored over 4 years ago by Alan McGovern <[email protected]>
[build] Bump to 1.0.13 for the next release

c1006d2e3c069c0483009be924c803bc65f178fb authored over 4 years ago by Alan McGovern <[email protected]>
[core] Find TorrentFiles using a BinarySearch

This is going to be much faster than a linear search
if a torrent contains hundreds, or thousand...

500ae522f7cafb1d9c1db892e740f9d6dcde1ff7 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Retain peers when restarting torrents

We no longer clear the peer list when stopping
a torrent manager. Instead the peers are marked
a...

13e032213a9b78cd02658184f399e5cfa5c74d30 authored over 4 years ago by Alan McGovern <[email protected]>
Apply resharper refactorings (#229)

* apply resharper global refactorings

* reformat after updating editorconfig

* unbreak aft...

353090e6f0751ade9bd1531743847a9161e45425 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Prefer msbuild xml instead of AssemblyInfo.cs

Generate the InternalsVisibleTo attributes using msbuild instead
of C#.

6e6fb7171e8f649de9ff966fb03f6c7d5bcf50b0 authored over 4 years ago by ilyalatt <[email protected]>
[core] Add uTorrent Web client detection

82b9083aeb80fdd8e4ed0b94bbe3538004bac09a authored over 4 years ago by Alan McGovern <[email protected]>
[tests] Modernise two TorrentCreator tests

We should be asserting on the default value
rather than setting it in the ctor.

Also the assert...

eddedc10db927f985bfc940673fcb2e4b5509e8f authored over 4 years ago by Alan McGovern <[email protected]>
[tests] Add some tests covering some toolbox cases

a85a5aa27a09d41a9cd40b04115d398d748c661a authored over 4 years ago by Alan McGovern <[email protected]>
[core] Use a Func<T, V> instead of a custom type

37a932fde79456adc4e31f0b6438a7b4b161968a authored over 4 years ago by Alan McGovern <[email protected]>
[core] Remove unused code

fab197d5951f754d243d5c89f6ddc01bb842746b authored over 4 years ago by Alan McGovern <[email protected]>
[core] Ensure the semantics of Cache are tested

Add tests ensuring the semantics of when items are
initialised is explicitly covered.

67b71c3807723f229d9952036e9368b8a2fbfeb9 authored over 4 years ago by Alan McGovern <[email protected]>
[tests] Edit the Torrent directly

We should have one test covering this
codepath.

0b966e704c082cbd12bf002fd3d5b5750df0a82d authored over 4 years ago by Alan McGovern <[email protected]>
Update README.md

Use different build definitions for each branch because azure devops
seems to have lost the abi...

b2886d791811857aba1285315a06080076891656 authored over 4 years ago by Alan McGovern <[email protected]>
Create FUNDING.yml

383a0e23ef9d95570e27947597c05353253f3a67 authored over 4 years ago by Alan McGovern <[email protected]>
[core] Add tests covering PortNotFound states

If the port is already in use we definitely enter
the correct listener state now.

669e84add59fad255db1202c3bb19bb7f3fff0f7 authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Add tests for Hashes

Also fix an off-by-one error when validating the index.

9c50931d4e33d859bbebf263fd675541b5706aae authored almost 5 years ago by Alan McGovern <[email protected]>
Branch-ify the links to DevOps too

If you click on something the list of builds will be pre-filtered to the
correct branch now.

275a0ba879d4083d76d70d7232656c537dd94add authored almost 5 years ago by Alan McGovern <[email protected]>
Add a badge for test results

Badges all the way!

7a9b6385fc61036b8e39f56ce61432466e7406ea authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Ensure BitFields must not be empty

Add tests covering some of the remaining cases. These
are mostly just parameter validations.

06ac14074767f27c4331ac7922f5837d4240f23c authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Replace ToString with [DebuggerDisplay]

This only exists to make debugging easier, but the VS debugger
works well with the DebuggerDispl...

93fa0ca78d4147efa60406f9e1942e88993c61ba authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Reformat the solution

I'm a monster! This will make traversing git history a little trickier,
but it's probably better...

e4d89bd1ee4ca93481e46db83e5d788614e3e5e5 authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Add an editor config to control formatting

As long as people use an editor which supports .editorconfig
files then everything will be forma...

1ca723c8a9471618f2353004feff2a7fbf92c10d authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Fix a compiler warning

This was introduced in the recent refactoring.
\

c7a99f345283b65da1aca77ff9cf9cd9dad8c448 authored almost 5 years ago by Alan McGovern <[email protected]>
[build] Add the DotSettings from resharper

3d0cc79364a83acd159c06bcdced7b7589f646f0 authored almost 5 years ago by Alan McGovern <[email protected]>
Update badges again

b79c791029266d5f95317745dc7730f71c8ebd1e authored almost 5 years ago by Alan McGovern <[email protected]>
Updated badges in the README

Added build status and code coverage badges for `master`
and `monotorrent-1.0`.

e7927e4150ef6cf1dd8ac92c147932573dd5dc60 authored almost 5 years ago by Alan McGovern <[email protected]>
[build] Bump version for release

d607dfb48398d9468dc438fdbfcf45dc6ebd6563 authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Remove some dead code and add a few more tests

2ad4a7f04a39f07bb2312da207df872c68afa9f3 authored almost 5 years ago by Alan McGovern <[email protected]>
Update README.md

d6c14c50d2ea88f2b5f5d17ea1024b633ff5c03d authored almost 5 years ago by Alan McGovern <[email protected]>
Added JetBrains info as they provided me a license

617e4bc48750db3309ff57dbe456c3eb059354fc authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Add a timeout when stopping torrents

This allows a relatively simple override for the final announce
so that the returned task doesn'...

06f39753f82e51ee20cce06dbace0120158b8f20 authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Add path validation when loading torrents

Ensure path traversal attacks are prevented by disallowing
torrents with embedded path traversal...

7a569b53339e43962622dd73edfc3be0d39b13bb authored almost 5 years ago by Alan McGovern <[email protected]>
Ensure txt files are marked as 'text' in git

f540ac984ff66ac2ce99bb33dff27aa474f9c45a authored almost 5 years ago by Alan McGovern <[email protected]>