RyuSocks 0.3.0-alpha
See the version list below for details.
dotnet add package RyuSocks --version 0.3.0-alpha
NuGet\Install-Package RyuSocks -Version 0.3.0-alpha
<PackageReference Include="RyuSocks" Version="0.3.0-alpha" />
paket add RyuSocks --version 0.3.0-alpha
#r "nuget: RyuSocks, 0.3.0-alpha"
// Install RyuSocks as a Cake Addin #addin nuget:?package=RyuSocks&version=0.3.0-alpha&prerelease // Install RyuSocks as a Cake Tool #tool nuget:?package=RyuSocks&version=0.3.0-alpha&prerelease
RyuSOCKS is a work-in-progress extensible SOCKS5 library, providing server and client implementations which are almost compliant with RFC1928.
The extensibility of RyuSOCKS mainly focuses on two parts of the protocol: Authentication and commands.
This means in addition to the standard SOCKS5 commands (CONNECT
, BIND
and UDP ASSOCIATE
), custom commands can also be added.
Similarly, custom implementations for authentication methods are supported as well.
LICENSE
This software library is licensed under the terms of the GPLv2, with exemptions for specific projects noted below.
You can find a copy of the license in the LICENSE file.
Exemptions:
- The Ryujinx Team and Contributors are exempt from GPLv2 licensing. They are permitted, at their discretion, to instead license any source code authored for the RyuSOCKS project as either GPLv2 or later or the MIT license. In doing so, they may alter, supplement, or entirely remove the copyright notice for each file they choose to relicense. Neither the RyuSOCKS project nor its individual contributors shall assert their moral rights against the aforementioned project.
Credits
I want to thank the following people for their help and/or other involvement with this project:
- Justin de Haas for creating the RyuSOCKS logo.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- NetCoreServer (>= 8.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.6.0-alpha | 70 | 9/24/2024 |
0.5.0-alpha | 68 | 9/5/2024 |
0.4.0-alpha | 68 | 8/28/2024 |
0.3.1-alpha | 89 | 8/14/2024 |
0.3.0-alpha | 64 | 8/14/2024 |
0.2.0-alpha | 62 | 7/28/2024 |
0.1.0-alpha | 68 | 4/20/2024 |
The full changelog is available at: https://github.com/TSRBerry/RyuSOCKS/blob/master/CHANGELOG.md
---
### Added
- `SocksClient.Connect()` implementation which takes an `IPEndPoint`.
- `Socket.Disconnect()` method is exposed by `SocksClient` and commands now.
- Username and password authentication method
according to [RFC 1929](https://datatracker.ietf.org/doc/html/rfc1929) ([#16](https://github.com/TSRBerry/RyuSOCKS/pull/16)).
- New list property (`ClientCommand.ClientEndpoints`) which contains
all remote client endpoints received from a proxy server.
- New `EndPoint` properties for `SocksClient`:
`LocalEndPoint`, `ProxiedLocalEndPoint` and `ProxiedRemoteEndPoint`.
- Minimal implementation of `GetSocketOption()` and `SetSocketOption()`
for `SocksClient` and `Command` (in case it handles communication).
- Minimal implementation of `Poll()` and `Blocking`
for `SocksClient` and `Command` (in case it handles communication).
### Changed
- Remove `Is`-prefix from `SocksSession` properties.
### Removed
- The client command property `BindCommand.ClientEndpoint`
in favor of `ClientCommand.ClientEndpoints`.
### Fixed
- `SocksClient.Dispose()` now also calls `Dispose()` for commands
which implement `IDisposable`.
- `UdpAssociateCommand.WrapperLength` now correctly returns the maximum amount
of bytes required to wrap/unwrap a `UdpPacket`.
- The send and receive methods of commands hava parameters for
`SocketFlags` and `SocketError` now.