Skip to content

Commit

Permalink
Merge pull request #1 from littleairmada/vrt-poc
Browse files Browse the repository at this point in the history
initial commit
  • Loading branch information
littleairmada committed Jul 8, 2023
2 parents d7cb8f3 + ecb98e7 commit 9fae896
Show file tree
Hide file tree
Showing 7 changed files with 981 additions and 0 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Lint

on: ["push", "pull_request"]

jobs:
ci:
name: ci
strategy:
fail-fast: false
matrix:
os: ["windows-latest", "ubuntu-latest", "macOS-latest"]
go: ["1.20.x"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v1
with:
fetch-depth: 1
- uses: WillAbides/setup-go-faster@v1.8.0
with:
go-version: ${{ matrix.go }}
- name: Install Dependecies
run: sudo apt-get install -y libpcap-dev
if: matrix.os == 'ubuntu-latest'
- run: "go test ./..."
- run: "go vet ./..."
- name: Run staticcheck
uses: dominikh/staticcheck-action@v1.3.0
with:
version: "2022.1.3"
if: matrix.os == 'ubuntu-latest'
40 changes: 40 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# vrt
[![Build Status](https://img.shields.io/github/actions/workflow/status/littleairmada/vrt/tests.yml?branch=main)](https://github.com/littleairmada/vrt/actions?query=branch%main)
[![GoDoc](https://godoc.org/github.com/littleairmada/vrt?status.svg)](https://godoc.org/github.com/littleairmada/vrt)
[![codecov](https://codecov.io/gh/littleairmada/vrt/branch/main/graph/badge.svg)](https://codecov.io/gh/littleairmada/vrt)
[![Go Report Card](https://goreportcard.com/badge/github.com/littleairmada/vrt)](https://goreportcard.com/report/github.com/littleairmada/vrt)

## Install

```shell
go get github.com/littleairmada/vrt
```

**Note:** VRT uses [Go Modules](https://github.com/golang/go/wiki/Modules) to manage dependencies.

## What is VRT?

VRT is a basic VITA 49.0 Radio Transport (VRT) packet parsing library for Go applications.

It uses [gopacket](https://github.com/google/gopacket) and can handle the basics of parsing VRT packets & serializing VRT structs into packets. It was originally developed to support a project using [FlexRadio](https://www.flexradio.com/comparison/) Amateur Radio transceivers.

It is **not** feature complete and currently supports:

* decoding a VRT packet from a series of bytes
* serializing a VRT packet struct into a byte array for processing by [gopacket](https://github.com/google/gopacket) or another packet injection library

## How to get the library

The library is split into several parts:
* `vrt`: basic implementation of VRT packet parsing/serialization based on the VITA 49.0 specification
* `examples`: example programs that use the `vrt` library to decode or encode VRT packets

You will probably only need `vrt` explicitly. The rest is pulled in automatically if necessary.

## References

* [ANSI/VITA 49.0-2015, VITA Radio Transport (VRT) Standard](https://www.vita.com/Sys/Store/Products/258942): The VITA Radio Transport (VRT) standard defines a transport-layer protocol designed to promote interoperability between RF (radio frequency) receivers and signal processing equipment in a wide range of applications.

## License

The project is licensed under the [MIT License](LICENSE).
Empty file added examples/.keep
Empty file.
14 changes: 14 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module github.com/littleairmada/vrt

go 1.20

require (
github.com/google/gopacket v1.1.19
github.com/stretchr/testify v1.8.4
)

require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
24 changes: 24 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8=
github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
Loading

0 comments on commit 9fae896

Please sign in to comment.