
FIXED: * Link in README * ReadConnResponse was not properly reading in the response status byte before checking the checksum, leading to receiving/parsing Response messages from a net.Conn *always* failing with an errs.ErrBadHdr. This has been rectified.
63 lines
2.5 KiB
Plaintext
63 lines
2.5 KiB
Plaintext
////
|
|
Go WireProto API Documentation © 2024 by Brent Saner is licensed under Creative Commons Attribution-ShareAlike 4.0 International. To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/4.0/
|
|
////
|
|
|
|
= Go WireProto API Documentation
|
|
Brent Saner <bts@square-r00t.net>
|
|
Last rendered {localdatetime}
|
|
:doctype: book
|
|
:docinfo: shared
|
|
:data-uri:
|
|
:imagesdir: images
|
|
:sectlinks:
|
|
:sectnums:
|
|
:sectnumlevels: 7
|
|
:toc: preamble
|
|
:toc2: left
|
|
:idprefix:
|
|
:toclevels: 7
|
|
:source-highlighter: rouge
|
|
:docinfo: shared
|
|
:this_protover: 1
|
|
:this_protover_hex: 0x00000001
|
|
|
|
[id="ref"]
|
|
== Reference
|
|
In addition to the documentation found in this document and https://wireproto.io/[the specification^], library usage documentation can be found at https://pkg.go.dev/r00t2.io/wireproto[the Golang module documentation page^]:
|
|
|
|
++++
|
|
<a href="https://go.pkg.dev/r00t2.io/wireproto">
|
|
<img src="https://pkg.go.dev/badge/r00t2.io/wireproto.svg"
|
|
alt="Go Reference"/>
|
|
</a>
|
|
++++
|
|
|
|
[id="lic"]
|
|
== License
|
|
This library is licensed for use, inclusion, and distribution under the https://opensource.org/license/bsd-3-clause["3-Clause BSD" license^].
|
|
|
|
.Full License
|
|
[%collapsible]
|
|
====
|
|
[source,plain]
|
|
----
|
|
include::LICENSE[]
|
|
----
|
|
====
|
|
|
|
[id="todo"]
|
|
== TODO
|
|
The following are a wishlist or things planned that may come in later versions.
|
|
|
|
* More clear errors
|
|
** Currently during e.g. `UnmarshalBinary` calls, just an `io.EOF` will be returned if the buffer is exhausted early. This may be able to be a little more context-helpful by using the `Err*` errors.
|
|
* Confirmation of read/write sizes in buffers
|
|
** The sizes they *should* be are known, there's no reason to not confirm it.
|
|
* Goroutines
|
|
** This of course won't work for serializing and keeping *order* of children (e.g. RG => Record); that'd still need to be ordered, but it will allow for parallel parsing *of* those children. Should benchmark, though; it may not be worth it.
|
|
* `context.Context` support for `Read*` and `Write*` funcs
|
|
** This is a relatively low priority as the passed `net.Conn` will likely return an error if its own context is canceled. This can be handled in the caller downstream.
|
|
* `.Append*()` methods to append any type to any parent type. e.g. `<Response>.AppendFVP(<FieldValuePair>)` would append an FVP to the most recent ResponseRecord to the most recent ResponseRecordGroup (or create if they don't exist), `<Response>.AppendRecord(...)` for appending a record to most recent record group etc.
|
|
* Better/more strict interfaces
|
|
* Maps should be `any`, not `interface{}` values
|