https://github.com/redstrate/physissharp
C# bindings for Physis
https://github.com/redstrate/physissharp
ffxiv ffxiv-modding final-fantasy-14 final-fantasy-xiv
Last synced: about 2 months ago
JSON representation
C# bindings for Physis
- Host: GitHub
- URL: https://github.com/redstrate/physissharp
- Owner: redstrate
- License: gpl-3.0
- Created: 2024-04-28T13:05:18.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-29T14:20:47.000Z (10 months ago)
- Last Synced: 2025-01-17T14:18:13.804Z (4 months ago)
- Topics: ffxiv, ffxiv-modding, final-fantasy-14, final-fantasy-xiv
- Language: Rust
- Homepage:
- Size: 55.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
Awesome Lists containing this project
README
# PhysisSharp
C# bindings for [Physis](https://github.com/redstrate/Physis).
## Building
Due to the complex nature of the build process, I have included a helper script called `build.sh`. If you wish to build it manually, see the script as it's very simple.
## Running the example
Note that the build script nor do any of the build steps copy the .so or .dll manually. You need to make sure to have `libphysis.so`, `libPhysisSharpHelpers.so` and `libPhysisSharp.so` (replace with `.dll` on Windows) next to the executable.
You can also use `LD_LIBRARY_PATH` on Linux to fool the linker.
## Process
[Physis](https://github.com/redstrate/Physis) is a Rust library for reading and writing FFXIV data. PhysisSharp exposes C# bindings that can be used in any C# application on Windows or Linux.
1. Physis is wrapped in libphysis, which exposes it on the C FFI.
2. bindgen is called on the generated libphysis header. It creates a bindgen-compatible Rust file that can be used for other tools.
3. csbindgen uses this newly created Rust file to create a C# FFI layer.
4. PhysisSharp has a hand-written safe layer over this C# FFI that can be used by other applications.## Contributing & Support
The best way you can help is by [monetarily supporting me](https://redstrate.com/fund/) or by submitting patches to
help fix bugs or add functionality. Filing issues is appreciated, but I do this in my free time so please don't expect professional support.## License

This project is licensed under the GNU General Public License 3. Some parts of the code or assets may be licensed differently.