This Plist library is used for decoding and encoding Apple Property Lists in both XML and binary forms.
Example using HTTP streams:
func someHTTPHandler(w http.ResponseWriter, r *http.Request) { var sparseBundleHeader struct { InfoDictionaryVersion *string `plist:"CFBundleInfoDictionaryVersion"` BandSize *uint64 `plist:"band-size"` BackingStoreVersion int `plist:"bundle-backingstore-version"` DiskImageBundleType string `plist:"diskimage-bundle-type"` Size uint64 `plist:"unknownKey"` } // decode an HTTP request body into the sparseBundleHeader struct if err := plist.NewXMLDecoder(r.Body).Decode(&sparseBundleHeader); err != nil { log.Println(err) return } }
This library is based on the DHowett go-plist library but has an API that is more like the XML and JSON package in the Go standard library. I.e. the plist.Decoder() accepts an io.Reader instead of an io.ReadSeeker