https://github.com/emily33901/argon
Open source steamclient.dll replacement
https://github.com/emily33901/argon
backend ipc steam steam-api steam-client steamkit2 steamworks
Last synced: 6 months ago
JSON representation
Open source steamclient.dll replacement
- Host: GitHub
- URL: https://github.com/emily33901/argon
- Owner: emily33901
- License: mit
- Created: 2018-04-22T14:29:25.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T00:53:50.000Z (almost 3 years ago)
- Last Synced: 2025-03-26T09:03:36.805Z (7 months ago)
- Topics: backend, ipc, steam, steam-api, steam-client, steamkit2, steamworks
- Language: C#
- Size: 1.63 MB
- Stars: 26
- Watchers: 5
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Argon
Argon `/ˈɑːɡɒn/` is an attempt to create a open source replacement for `steamclient.dll` that can be used as a drop-in replacement for the original version (which is definitely very far-fetched). Argon is __not__ `open-steamworks`. it is not trying to expose interfaces that already exist to users, it is trying to replace the interface in its entirety.
There is still lots of work to be done, Argon is only in its infancy right now.
More reversing and implementing still needs to be done in order to make this project viable, although the overall structure has been established (see the longer overview for more information about this).## Quick overview:
`Argon` aims to mimic the frontend behaviour of `steamclient` (that is not the UI but rather the backend for steam) so that it can be dropped inplace and functionality should remain intact.
It primarily uses C# and alot of interoperability helpers to expose code.
The `steamclient` project bootstraps the `ArgonCore` project and then through the `steamclient` C api users will interact with `Argon` in the same way they did with the default `steamclient`.# TODO:
## Infrastructure
### IPC
- [x] Write an ipc api between server / multiple clients
- [x] IPC transport of Pointers ("out" variables)
- [x] IPC transport of Buffers (fixed size "out" variables)
### Interop
- [x] Interop between cxx and csharp
- [ ] 32bit linux interop between cxx and csharp
- [x] Interop between csharp and cxx (Interface exporting)### Steam specific
- [ ] Send callbacks to client
- - [x] Send data
- - [x] Replicate to all pipes
- [ ] "Async call" manager
## Interfaces
### Unversioned (IClient...)
- [ ] IClientEngineOnly some of IClientFriends and IClientUser have been implemented
### Versioned (ISteam...010)
- [x] ISteamClient017
Most of ISteamFriends and some ISteamUser have been implemented