https://github.com/strongswan/govici
Go implementation of the VICI protocol
https://github.com/strongswan/govici
go golang strongswan vici vici-protocol
Last synced: about 1 year ago
JSON representation
Go implementation of the VICI protocol
- Host: GitHub
- URL: https://github.com/strongswan/govici
- Owner: strongswan
- License: mit
- Created: 2019-04-06T02:10:13.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-02-25T18:22:57.000Z (over 1 year ago)
- Last Synced: 2025-03-29T14:09:00.259Z (about 1 year ago)
- Topics: go, golang, strongswan, vici, vici-protocol
- Language: Go
- Homepage:
- Size: 223 KB
- Stars: 60
- Watchers: 7
- Forks: 17
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# govici
[](https://github.com/strongswan/govici/actions/workflows/lint.yaml?query=branch%3Amaster)
[](https://github.com/strongswan/govici/actions/workflows/test.yaml?query=branch%3Amaster)
[](https://pkg.go.dev/github.com/strongswan/govici/vici)
## About
The strongSwan [vici protocol](https://www.strongswan.org/apidoc/md_src_libcharon_plugins_vici_README.html) is used for external applications to monitor, configure, and control the IKE daemon charon. This Go package provides a pure-go implementation of a vici client library.
The package documentation can be found on [godoc](https://godoc.org/github.com/strongswan/govici/vici).
### API Stability
This package makes an effort to not make breaking changes to the API, but while it is in early stages it may be necessary. The goal is to be able to guarantee API stability at `v1.0.0`. For details on changes to the API, please read the [changelog](CHANGELOG.md).
When a new minor version is released, the previous minor version will still receive updates for bug fixes if needed, especially when the new minor version introduces breaking changes.
## Getting started
```go
import (
"github.com/strongswan/govici/vici"
)
```
This package does not implement wrappers for individual vici commands, nor does it pre-define types for the message parameter of those commands. Commands are made by passing a command name and a populated `Message` to the `Session.CommandRequest` function. For a detailed walkthrough on how to use this package, see [Getting Started with vici](docs/getting_started.md).
There are additional examples for some functions on [godoc](https://godoc.org/github.com/strongswan/govici/vici).