https://github.com/chausner/boincrpc
Async .NET implementation of the BOINC GUI RPC protocol
https://github.com/chausner/boincrpc
boinc
Last synced: 10 months ago
JSON representation
Async .NET implementation of the BOINC GUI RPC protocol
- Host: GitHub
- URL: https://github.com/chausner/boincrpc
- Owner: chausner
- License: lgpl-3.0
- Created: 2016-11-12T01:38:56.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2021-08-28T22:32:20.000Z (almost 5 years ago)
- Last Synced: 2025-09-27T20:13:28.963Z (11 months ago)
- Topics: boinc
- Language: C#
- Homepage:
- Size: 98.6 KB
- Stars: 12
- Watchers: 2
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# BoincRpc
An asynchronous .NET implementation of the [BOINC GUI RPC protocol](http://boinc.berkeley.edu/trac/wiki/GuiRpc).
The implementation is up-to-date as of BOINC 7.18.1 and (almost) all RPC structures and commands are fully supported.
The library is compatible with [.NET Standard 2.0](https://docs.microsoft.com/en-us/dotnet/standard/net-standard).
[](https://www.nuget.org/packages/BoincRpc/)
[](https://github.com/chausner/BoincRpc/blob/master/LICENSE)
Usage
-----
Usage of the library should be largely self-explanatory.
All functionality is provided via the `RpcClient` class.
The following snippet shows how to connect and authenticate to a BOINC client and print a list of all current tasks:
```csharp
using (RpcClient rpcClient = new RpcClient())
{
await rpcClient.ConnectAsync("localhost", 31416);
bool authorized = await rpcClient.AuthorizeAsync("57dd16bbf477ff9a76141f1575d4a44c");
if (authorized)
{
foreach (Result result in await rpcClient.GetResultsAsync())
{
Console.WriteLine("{0} ({1}): {2:F2}% complete", result.WorkunitName, result.ProjectUrl, result.FractionDone * 100);
}
}
}
```
For information on the RPC commands, see the [BOINC wiki](http://boinc.berkeley.edu/trac/wiki/GuiRpc).
License
-------
LGPL 3, see [LICENSE](LICENSE)