Awesome
Oblivion-Helper 🚀
Oblivion-Helper is a robust process management tool designed to manage the Sing-Box core for the Oblivion-Desktop application, providing seamless cross-platform support for Windows, macOS, and Linux.
<br> <div align="center"> </div> <br>🌟 Overview
Oblivion-Helper is a lightweight, high-performance process management utility built with Go and gRPC. It provides a reliable interface for controlling the Sing-Box core across multiple operating systems, ensuring smooth and efficient core management for the Oblivion-Desktop application.
✨ Features
- Cross-Platform Support: Works seamlessly on Windows, macOS, and Linux
- gRPC-Powered: Utilizes gRPC for robust, high-performance inter-process communication
- Secure Process Management: Provides start, stop, and status streaming capabilities
- Configurable: Easy configuration through a simple JSON configuration file
🚀 Installation
Download Binaries
Download the latest release for your platform from the Releases Page.
Build from Source
Prerequisites
- Go: https://go.dev
- Protocol Buffers:
protoc
compiler installed. https://grpc.io/docs/protoc-installation - Protobuf Plugins:
protoc-gen-go
andprotoc-gen-go-grpc
installed. https://grpc.io/docs/languages/go/quickstart
-
Clone the repository:
git clone https://github.com/ShadowZagrosDev/oblivion-helper.git cd oblivion-helper
-
Initialize Go modules:
go mod init oblivion-helper go mod tidy
-
Generate Go files from the gRPC definitions:
protoc --go_out=./ --go-grpc_out=./ ./proto/oblivion.proto
-
Build the project:
go build -o oblivion-helper ./cmd/main.go
📝 Configuration
Create a config.obv
file in the same directory as the Oblivion-Helper binary.
{
"sbConfig": "singbox-config.json",
"sbBin": "sing-box"
}
sbConfig
: Name of the Sing-Box configuration filesbBin
: Name of the Sing-Box binary
Important:
- The
singbox-config.json
file - The
sing-box
binary - The
oblivion-helper
binary - The
config.obv
file
All these files must be in the same directory for the helper to function correctly.
🔧 Usage
Run the helper with root privileges:
sudo ./oblivion-helper
Command-line options:
version
: Display the current version and environment details../oblivion-helper version
gRPC Client Interaction
The helper exposes a gRPC service with these methods:
Start()
: Initiate the Sing-Box processStop()
: Terminate the Sing-Box processStreamStatus()
: Receive real-time status updatesExit()
: Gracefully exit the helper
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
📄 License
Distributed under the MIT License. See the LICENSE for more information.
Made with ❤️ by ShadowZagrosDev