https://github.com/dolmen-go/endian
Gives endianness of the GOARCH
https://github.com/dolmen-go/endian
byte-order endianness goarch golang golang-module golang-package
Last synced: 18 days ago
JSON representation
Gives endianness of the GOARCH
- Host: GitHub
- URL: https://github.com/dolmen-go/endian
- Owner: dolmen-go
- License: apache-2.0
- Created: 2016-11-04T09:00:55.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-03-05T09:41:37.000Z (about 2 months ago)
- Last Synced: 2025-03-23T23:36:13.300Z (about 1 month ago)
- Topics: byte-order, endianness, goarch, golang, golang-module, golang-package
- Language: Go
- Size: 83 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# endian.Native - A single constant that you should not use
[](https://pkg.go.dev/github.com/dolmen-go/endian)
[](https://codecov.io/gh/dolmen-go/endian)[](https://goreportcard.com/report/github.com/dolmen-go/endian)## WARNING 1
You should probably not use this package, because you should avoid using the native byte ordering in programs!
Read this article by Rob Pike before using this package:
https://commandcenter.blogspot.fr/2012/04/byte-order-fallacy.html
You should probably first try to fix the broken code that generates
data dependent on the architecture on which it is compiled. Fix it so it
always generates code using a fixed byte order.
If you can't, see if you can detect the byte order of the data from the
data itself.## WARNING 2
Go 1.21 has added [NativeEndian](https://pkg.go.dev/encoding/binary#NativeEndian)
(see proposal [#57237](https://go.dev/issue/57237)) which serves the same purpose.This package is compatible even with very old versions of Go.
## Usage
This package only exports a single variable containing the [byte order](https://pkg.go.dev/encoding/binary#ByteOrder) of
GOARCH.See the [encoding/binary](https://pkg.go.dev/encoding/binary) package
for how to use it to read/write a binary data stream.```go
package endianimport "encoding/binary"
var Native binary.ByteOrder
```The implementation is ultra lightweight because it relies on build tags.
## License
Copyright 2016-2025 Olivier Mengué
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.