APRSGo是我基于Golang开发的跨平台APRS-IS服务器,目前还在开发中
项目地址:GitHub APRSGo
附属项目:GitHub APRSutils
其中APRSGo为服务器主项目,APRSutils则是一个开源的APRS工具包,
提供了APRS报文解析、Q构造算法、呼号验算、Vincenty Inverse距离公式、
Haversine距离公式、Base91编解码、APRS TCP客户端的支持。
APRSGo的类似项目有广泛使用的aprsc和最早的javAPRSSrvr,
一开始想开发APRSGo是希望利用Golang的跨平台的特性,
来让现代化的APRS服务器运行在更多平台上,尤其是Loong64(LoongArch64,龙架构)上,
目前能够支持的平台有:
AIX-PPC64
Darwin(macOS)-amd64
Darwin(macOS)-arm64
Dragonfly-amd64
FreeBSD-386
FreeBSD-amd64
FreeBSD-arm(32)
FreeBSD-arm64(aarch64)
Illumos-amd64
Linux-(i)386
Linux-amd64
Linux-loong64
Linux-mips
Linux-mips64
Linux-mips64le
Linux-mipsle
Linux-ppc64
Linux-ppc64le
Linux-riscv64
NetBSD-amd64
NetBSD-arm(32)
NetBSD-arm64(aarch64)
OpenBSD-(i)386
OpenBSD-amd64
OpenBSD-arm(32)
OpenBSD-arm64(aarch64)
OpenBSD-riscv64
Solaris-amd64
Windows-(i)386
Windows-amd64
Windows-arm64(aarch64)
其余架构例如Plan9等,主要由于上游依赖库的兼容性问题,
后期可能考虑向上游贡献代码来做兼容,
目前来看,主要目的已经达成,经测试龙芯2K0300处理器已经正常运行,
大家手持龙芯的也可以去构建服务器来测试,需要注意的是,
由于采用Golang官方源,不支持龙芯旧世界,请注意一定要使用新世界方案。
目前项目自身主要还存在的问题有APRS解析器有少数不规范数据包无法正常解析,
filter过滤器算法不完善(写的比较急),如果有能力的火腿也可以向仓库贡献代码。
最终极的目标是搭建一台APRS Tier2节点,并运行在龙架构上,
让 status.aprs2.net 展示 loong64 的名字。
整活意义更大一些吧,如果有这方面能力的,欢迎联系我。
Demo站点:APRSCN-S0
仅供演示作用,2K0300性能不高,请高抬贵手不要折腾!
发现Bug欢迎贡献代码或者在GitHub发起Issues向我报告。