Documentation
¶
Overview ¶
Package abyss_core provides the core networking module for the Abyss Browser. This builds a DLL library, and not expected to be used as an imported package. Subpackages can be imported for external use, but backward compatibility is not guaranteed.
See https://github.com/kadmila/Abyss-Browser
API Reference ¶
For DLL exported functions and its usage, see https://pkg.go.dev/github.com/kadmila/Abyss-Browser/abyss_core/native_dll
Build Profiles ¶
The project supports two build profiles: debug and release. Using `-tags=debug` enables the debug profile. Use ./build_dll_debug.ps1 or ./build_dll_debug.ps1 to build.
Subpackages ¶
native_dll ¶
Contains DLL exports for abyssnet.dll. The file `dllmain.go` defines export symbols, and `marshalling.go` provides dynamic-length byte array marshalling utilities.
aerr ¶
Defines all custom error types used across the project.
ahmp ¶
Contains AHMP message definitions. Serialization is not included. For protocol details, see the AHMP specification.
and ¶
Implements the Abyss world neighbor discovery protocol.
aurl ¶
AbyssURL(AURL) handling and parsing utilities.
crash ¶
TODO: crash dump utility.
host ¶
main QUIC host
interfaces ¶
Interfaces hiding low-level network protocol implementations. This is designed for compatibility between different communication protocol/abyss neighbor discovery protocol implementations.
net_service ¶
low level networking service (implements `interfaces`).
test ¶
test suits
test_logs ¶
Stores .log files for test results. This directory should not be committed to the repository.
tools ¶
utilities and helpers.
watchdog ¶
debug watchdog.
See individual types and functions for more detailed documentation.
Directories
¶
| Path | Synopsis |
|---|---|
|
abyst package provides abyst gateway
|
abyst package provides abyst gateway |
|
ahmp package provides definition of ahmp message types, and provide helper tools.
|
ahmp package provides definition of ahmp message types, and provide helper tools. |
|
ahost (alpha/abyss host) is a revised abyss host implementation of previous host package.
|
ahost (alpha/abyss host) is a revised abyss host implementation of previous host package. |
|
and (Abyss Neighbor Discovery) algorithm defines worlds in abyss network.
|
and (Abyss Neighbor Discovery) algorithm defines worlds in abyss network. |
|
ani (abyss new interface) is a refined abyss interface set for abyss alpha release.
|
ani (abyss new interface) is a refined abyss interface set for abyss alpha release. |
|
Package ann (abyss net node) provides QUIC node that can establish abyss P2P connections and TLS client auth HTTPS connections.
|
Package ann (abyss net node) provides QUIC node that can establish abyss P2P connections and TLS client auth HTTPS connections. |
|
Package fw is a configurable firewall for abyss P2P network.
|
Package fw is a configurable firewall for abyss P2P network. |
|
package sec provides security-related functions for abyss.
|
package sec provides security-related functions for abyss. |
|
tools
|
|