Skip to content

Commit a4e140b

Browse files
authored
Merge pull request #1 from tsautier/rename/ratioforge
feat: Rename project to RatioForge and migrate to .NET 8
2 parents bf9f1f8 + 104ee34 commit a4e140b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+440
-372
lines changed

CHANGELOG.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Changelog
2+
3+
All notable changes to RatioForge will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [1.0.0] - 2026-01-17
9+
10+
### Major Changes - Project Reborn as RatioForge
11+
12+
This release marks a complete modernization and rebranding of RatioMaster.NET.
13+
14+
#### Added
15+
- **.NET 8 Support**: Complete migration from .NET Framework 4.0 to .NET 8
16+
- **NOTICE.md**: Clear attribution file for original author and derivative work
17+
- **Modern SDK Project Format**: Migrated from legacy .csproj to SDK-style
18+
- **Updated NuGet Packages**:
19+
- StyleCop.Analyzers 1.0.0 → 1.2.0-beta.556
20+
- NUnit 3.5.0 → 4.2.2
21+
- Added Microsoft.NET.Test.Sdk 17.11.1
22+
- Added NUnit3TestAdapter 4.6.0
23+
- **C# 12 Support**: Leveraging latest language features
24+
- **Nullable Reference Types**: Improved null safety
25+
26+
#### Changed
27+
- **Project Name**: RatioMaster.NET → RatioForge
28+
- **Namespace**: `RatioMaster_source``RatioForge`
29+
- **Version**: 0.4.3 → 1.0.0 (fresh start)
30+
- **Assembly Names**: All assemblies renamed to RatioForge
31+
- **Links and URLs**: Updated to point to new repository
32+
- **Copyright**: Added dual copyright (Original: Nikolay Kostov 2006-2016, Fork: tsautier 2026-present)
33+
- **Description**: Updated assembly description to reflect modernization
34+
- **README.md**: Complete rewrite with .NET 8 build instructions
35+
- **LICENSE**: Added tsautier copyright while preserving original
36+
37+
#### Removed
38+
- **packages.config**: Replaced with PackageReference (SDK-style)
39+
- **Old .NET Framework 4.0 dependencies**
40+
- **Obsolete PayPal donation link**
41+
- **Outdated project URLs**
42+
43+
#### Technical Details
44+
- **Target Framework**: .NET Framework 4.0 → .NET 8 (net8.0-windows)
45+
- **Project Format**: Legacy XML → Modern SDK-style
46+
- **Build System**: MSBuild (legacy) → Modern .NET CLI
47+
- **Language Version**: C# 5 → C# 12
48+
- **Platform**: Windows-only (WinForms on .NET 8)
49+
50+
### Migration Notes
51+
52+
This is a **BREAKING CHANGE** release:
53+
- Requires .NET 8 Runtime (not .NET Framework)
54+
- Binary name changed from `RatioMaster.NET.exe` to `RatioForge.exe`
55+
- Configuration files may need migration (different AppData path)
56+
- Some deprecated APIs may behave differently
57+
58+
### Attribution
59+
60+
Based on RatioMaster.NET by Nikolay Kostov (2006-2016)
61+
- Original Repository: https://github.com/NikolayIT/RatioMaster.NET
62+
- Original License: MIT
63+
64+
---
65+
66+
## [0.43] - 2016-01-08 (RatioMaster.NET - Final Release)
67+
68+
*This and earlier versions were published as RatioMaster.NET by Nikolay Kostov*
69+
70+
### Changes
71+
- Made open source on GitHub
72+
- Built for .NET Framework 4.0
73+
- Added new client emulations: uTorrent 3.3.2, 3.3.0, 3.2.0, Transmission 2.82
74+
- Fixed proxies for localhost
75+
- Time displayed in logs can be adjusted to 24h format
76+
- Updated program information and links
77+
- Numerous code refactorings
78+
79+
### Previous Versions (Summary)
80+
81+
- **0.42 (2010-04-19)**: Renamed to RatioMaster.NET, added Vuze support
82+
- **0.41 (2008-08-26)**: Vista memory reader fixes, new client emulations
83+
- **0.40 (2008-01-30)**: Visual Studio 2008 build, Azureus 3.x support
84+
- **0.39 (2007-11-25)**: Fixed numwant/port bugs, new clients
85+
- **0.38 (2007-09-07)**: Performance optimizations, KTorrent support
86+
- **0.37 (2007-07-27)**: Security fixes, ABC/BitComet fixes
87+
- **0.36 (2007-07-15)**: Browser control removed, new settings
88+
- **0.35 (2007-05-10)**: Multiple new client emulations
89+
- **0.34 (2007-02-17)**: Tracker connection fixes
90+
- **0.33 (2007-02-01)**: Finished % bug fixed, BitTyrant support
91+
- **0.32 (2007-01-20)**: Azureus parsing, drag & drop support
92+
- **0.31 (2007-01-05)**: Loading screen added
93+
- **0.30 (2006-12-15)**: Session saving, browser integration
94+
- *And many more versions dating back to 2006...*
95+
96+
For complete historical changelog, see [HISTORY.TXT](HISTORY.TXT)
97+
98+
---
99+
100+
[1.0.0]: https://github.com/tsautier/RatioForge/releases/tag/v1.0.0
101+
[0.43]: https://github.com/NikolayIT/RatioMaster.NET/releases/tag/v0.43

LICENSE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
The MIT License (MIT)
22

33
Copyright (c) 2006-2016 Nikolay Kostov
4+
Copyright (c) 2026-present tsautier
45

56
Permission is hereby granted, free of charge, to any person obtaining a copy
67
of this software and associated documentation files (the "Software"), to deal

NOTICE.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# NOTICE
2+
3+
## RatioForge
4+
5+
This project is a fork and continuation of **RatioMaster.NET**, originally created by Nikolay Kostov.
6+
7+
### Original Project
8+
9+
- **Project**: RatioMaster.NET
10+
- **Author**: Nikolay Kostov (NikolayIT)
11+
- **Copyright**: © 2006-2016 Nikolay Kostov
12+
- **Original Repository**: https://github.com/NikolayIT/RatioMaster.NET
13+
- **License**: MIT License
14+
15+
### Current Project (RatioForge)
16+
17+
- **Maintainer**: tsautier
18+
- **Repository**: https://github.com/tsautier/RatioForge
19+
- **Copyright**: © 2026-present tsautier
20+
- **License**: MIT License
21+
22+
### Attribution
23+
24+
RatioForge is based on the original RatioMaster.NET codebase and includes significant modifications:
25+
- Renamed from RatioMaster.NET to RatioForge (January 2026)
26+
- Migrated from .NET Framework 4.0 to .NET 8
27+
- Modernized codebase and dependencies
28+
- Updated user interface and branding
29+
30+
All original work by Nikolay Kostov remains under his copyright (2006-2016) as per the MIT License terms.
31+
All modifications and derivative work are copyright © 2026-present tsautier.
32+
33+
### License Compliance
34+
35+
In compliance with the MIT License, this project:
36+
- Retains the original LICENSE file with Nikolay Kostov's copyright notice
37+
- Acknowledges the original author and project
38+
- Maintains the same MIT License for derivative work
39+
- Provides this NOTICE file for transparency
40+
41+
### Third-Party Components
42+
43+
This project may include third-party libraries and components, each governed by their respective licenses.
44+
See the LICENSE file and package references for details.
45+
46+
---
47+
48+
**Original Attribution (2006-2016)**: Nikolay Kostov
49+
**Current Maintainer (2026-present)**: tsautier
50+
51+
For the complete license text, see the [LICENSE](LICENSE) file.

README.md

Lines changed: 120 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,125 @@
1-
RatioMaster.NET
2-
===============
1+
# RatioForge
32

4-
RatioMaster.NET is a small standalone application which fakes upload and download stats of a torrent to almost all bittorrent trackers.
3+
[![Build status](https://ci.appveyor.com/api/projects/status/16e65svfw87xdolo?svg=true)](https://ci.appveyor.com/project/tsautier/ratioforge)
54

6-
This means that it does NOT rely on your bittorrent client (uTorrent, Azureus, BitComet, ABC and etc.) and it will NOT download/upload the files on a torrent - it only can fake download/upload.
5+
**RatioForge** is amodern, .NET 8-powered torrent client simulator that allows you to fake upload and download statistics to almost all BitTorrent trackers.
76

8-
RatioMaster.NET has hardcoded emulations for the most commonly used BitTorrent clients: uTorrent, BitComet, Azureus, ABC, BitLord, BTuga, BitTornado, Burst, BitTyrant, BitSpirit.
7+
> **Note**: This project is a fork and modernization of [RatioMaster.NET](https://github.com/NikolayIT/RatioMaster.NET) by Nikolay Kostov. See [NOTICE.md](NOTICE.md) for full attribution.
98
10-
## Build status
9+
## Features
1110

12-
[![Build status](https://ci.appveyor.com/api/projects/status/16e65svfw87xdolo?svg=true)](https://ci.appveyor.com/project/NikolayIT/ratiomaster-net)
11+
- **Standalone Application**: Does NOT rely on your BitTorrent client (uTorrent, qBittorrent, etc.)
12+
- **No Real Transfer**: Does NOT download/upload actual files - only simulates stats
13+
- **Wide Client Support**: Hardcoded emulations for popular BitTorrent clients:
14+
- uTorrent (multiple versions)
15+
- BitComet, Azureus/Vuze
16+
- ABC, BitLord, BTuga
17+
- BitTornado, Burst, BitTyrant, BitSpirit
18+
- Deluge, Transmission, KTorrent
19+
- And more!
20+
- **Modernized**: Rebuilt for .NET 8 with improved performance and Windows 11 support
21+
22+
## Requirements
23+
24+
- **Windows 10/11** (64-bit recommended)
25+
- **.NET 8 Runtime** ([Download here](https://dotnet.microsoft.com/download/dotnet/8.0))
26+
27+
## Installation
28+
29+
1. Download the latest release from the [Releases](https://github.com/tsautier/RatioForge/releases) page
30+
2. Extract the archive
31+
3. Run `RatioForge.exe`
32+
33+
## Building from Source
34+
35+
### Prerequisites
36+
37+
- [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
38+
- Visual Studio 2022 (or later) or Rider
39+
40+
### Build Steps
41+
42+
```bash
43+
# Clone the repository
44+
git clone https://github.com/tsautier/RatioForge.git
45+
cd RatioForge
46+
47+
# Restore dependencies
48+
dotnet restore Source/RatioForge.sln
49+
50+
# Build
51+
dotnet build Source/RatioForge.sln --configuration Release
52+
53+
# Run
54+
dotnet run --project Source/RatioForge/RatioForge.csproj
55+
```
56+
57+
### Running Tests
58+
59+
```bash
60+
dotnet test Source/RatioForge.sln
61+
```
62+
63+
## Usage
64+
65+
1. Load a `.torrent` file
66+
2. Select the BitTorrent client to emulate
67+
3. Configure upload/download speeds and ratio
68+
4. Click "Start" to begin sending fake stats to the tracker
69+
70+
For detailed usage instructions, see the built-in help menu.
71+
72+
## What's New in 1.0.0 (RatioForge)
73+
74+
- **Complete Rename**: RatioMaster.NET → RatioForge
75+
- **.NET 8 Migration**: Modernized from .NET Framework 4.0
76+
- **Improved Performance**: Leveraging latest .NET runtime optimizations
77+
- **Updated Dependencies**: All packages upgraded to latest versions
78+
- **Modern Codebase**: C# 12 features and nullable reference types
79+
- **Better Maintainability**: SDK-style project format
80+
81+
See [CHANGELOG.md](CHANGELOG.md) for full version history.
82+
83+
## History
84+
85+
**RatioForge** is based on **RatioMaster.NET** by Nikolay Kostov:
86+
- Original Development: 2006-2016
87+
- Original Author: [Nikolay Kostov (NikolayIT)](http://nikolay.it)
88+
- Original Repository: https://github.com/NikolayIT/RatioMaster.NET
89+
90+
This fork was created in 2026 to modernize the project for current .NET standards while preserving all original functionality.
91+
92+
## License
93+
94+
This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.
95+
96+
### Attribution
97+
98+
- **Original Work** (2006-2016): Copyright © Nikolay Kostov
99+
- **Derivative Work** (2026-present): Copyright © tsautier
100+
101+
See [NOTICE.md](NOTICE.md) for full attribution details.
102+
103+
## Contributing
104+
105+
Contributions are welcome! Please feel free to submit a Pull Request.
106+
107+
1. Fork the repository
108+
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
109+
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
110+
4. Push to the branch (`git push origin feature/AmazingFeature`)
111+
5. Open a Pull Request
112+
113+
## Disclaimer
114+
115+
This software is for educational purposes only. Use at your own risk. The developers are not responsible for any misuse or damage caused by this program.
116+
117+
## Support
118+
119+
- **Issues**: [GitHub Issues](https://github.com/tsautier/RatioForge/issues)
120+
- **Discussions**: [GitHub Discussions](https://github.com/tsautier/RatioForge/discussions)
121+
122+
---
123+
124+
**Made with ❤️ using .NET 8**
125+
**Based on RatioMaster.NET by Nikolay Kostov**

Source/RatioMaster.Tests/Properties/AssemblyInfo.cs renamed to Source/RatioForge.Tests/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System.Reflection;
1+
using System.Reflection;
22
using System.Runtime.CompilerServices;
33
using System.Runtime.InteropServices;
44

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net8.0</TargetFramework>
5+
<RootNamespace>RatioForge.Tests</RootNamespace>
6+
<AssemblyName>RatioForge.Tests</AssemblyName>
7+
<Nullable>enable</Nullable>
8+
<ImplicitUsings>disable</ImplicitUsings>
9+
<LangVersion>12.0</LangVersion>
10+
<ProjectGuid>{B3828DC2-9D25-4B89-A9A5-316DCC5BAB3E}</ProjectGuid>
11+
<IsPackable>false</IsPackable>
12+
<IsTestProject>true</IsTestProject>
13+
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
14+
</PropertyGroup>
15+
16+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
17+
<CodeAnalysisRuleSet>..\Rules.ruleset</CodeAnalysisRuleSet>
18+
</PropertyGroup>
19+
20+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
21+
<CodeAnalysisRuleSet>..\Rules.ruleset</CodeAnalysisRuleSet>
22+
</PropertyGroup>
23+
24+
<ItemGroup>
25+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
26+
<PackageReference Include="NUnit" Version="4.2.2" />
27+
<PackageReference Include="NUnit3TestAdapter" Version="4.6.0" />
28+
<PackageReference Include="NUnit.Analyzers" Version="4.3.0">
29+
<PrivateAssets>all</PrivateAssets>
30+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
31+
</PackageReference>
32+
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.556">
33+
<PrivateAssets>all</PrivateAssets>
34+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
35+
</PackageReference>
36+
</ItemGroup>
37+
38+
<ItemGroup>
39+
<ProjectReference Include="..\RatioForge\RatioForge.csproj" />
40+
</ItemGroup>
41+
42+
</Project>

Source/RatioMaster.Tests/VersionCheckerTests.cs renamed to Source/RatioForge.Tests/VersionCheckerTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace RatioMaster.Tests
1+
namespace RatioForge.Tests
22
{
33
using System;
44

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio 14
44
VisualStudioVersion = 14.0.24720.0
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RatioMaster", "RatioMaster\RatioMaster.csproj", "{C732F44B-C910-4C9B-A97F-38DFFAB3C957}"
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RatioForge", "RatioForge\RatioForge.csproj", "{C732F44B-C910-4C9B-A97F-38DFFAB3C957}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RatioMaster.Tests", "RatioMaster.Tests\RatioMaster.Tests.csproj", "{B3828DC2-9D25-4B89-A9A5-316DCC5BAB3E}"
8+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RatioForge.Tests", "RatioForge.Tests\RatioForge.Tests.csproj", "{B3828DC2-9D25-4B89-A9A5-316DCC5BAB3E}"
99
EndProject
1010
Global
1111
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)