Skip to main content

core-aprs-client

Python 3.11+ License: GPL v3 Code style: black PyPi version

Table of contents

Introduction

Core APRS client framework with dupe and anti-flooding detection, bulletin/beaconing support, and other APRS-IS related stuff.

core-aprs-client is a modernized version of mpad's APRS functions which can be used for building your very own APRS client / bot. Its framework supports all of mpad's core APRS messaging functions, such as connecting to APRS-IS, message dupe detection, ACK handling, and other functionality such as APRS bulletins (supporting both static and dynamic contents) and APRS beaconing. Additionally, support for rare use cases such as pre- and post-processing of APRS requests is provided. However, core-aprs-client deliberately lacks any specific APRS bot functions such as WX reporting etc.

This is where you step in. Add your bot-specific code to the client's APRS framework code. Everything else related to APRS messaging and communication with APRS-IS will be covered by the core-aprs-client framework.

Sample APRS Client

The following example illustrates a fully functional APRS bot. You will provide the APRS message input parser code and the generator responsible for the outgoing APRS message content. Everything else will be handled by the core-aprs-client framework.

from CoreAprsClient import CoreAprsClient

# Your custom input parser and output generator code
from input_parser import parse_input_message
from output_generator import generate_output_message

import logging

if __name__ == '__main__':
    client = CoreAprsClient(config_file="core_aprs_client.cfg",
                            log_level=logging.INFO,
                            input_parser=parse_input_message,
                            output_generator=generate_output_message)
    client.activate_client()

It's as simple as that.

Core features

Installation and Configuration

Installation instructions

Instructions for installing the framework and its sample APRS client on your computer can be found here.

Client Configuration

The steps for modifying the client's config file are described here.

Framework examples

This directory contains sample program code; it also contains the ready-to-use templates for the framework's configuration files.

CoreAprsClient class description

The framework's class methods are described here

Source Code Anatomy

A brief overview on this repositories' software modules used by the client can be found here.

Framework usage

The steps for using the client framework are described here.

Client schematics

If you want to learn about the bot's basic processing structure, then have a look at this diagram.

Dupe Detection and Flooding Prevention

Information on the framework's dupe detection and flooding prevention mechanisms are described here.

Projects that use core-aprs-client

A list of my projects that are dependent on core-aprs-client can be found here

Known issues and caveats

  • This software is single-threaded. Due to APRS-IS's technical nature of resubmitting non-ack'ed messages, this limitation should not be an issue, though. Future versions of this software might support queued processing of incoming requests.
  • This software is intended to be used by licensed ham radio operators. If you are not a licensed ham radio operator, then this program is not (yet) for you. Why not take a look at sites such as Hamstudy and 50 Ohm - and get licensed?
  • You should at least know the APRS basics before you use this software. Acquaint yourself with the official APRS documentation and learn about how APRS works in general. Additionally, have a look at the APRS Foundation's website.
  • You HAVE to assign your personal call sign to the bot.
  • You HAVE to request your personal APRS TOCALL for using this bot in production. See the APRS Device ID information section on proper usage.

Alternatives to core-aprs-client

A great alternative to core-aprs-client is KM6LYW'saprsd. If you don't intend to use core-aprs-client's specific functionalities such as pre- and post-processing (which afaik aren't supported by aprsd), this program might be a viable alternative.

The fine print

  • If you intend to host an instance of this program, you must be a licensed radio amateur. BYOP: Bring your own (APRS-IS) passcode. If you don't know what this is, then this program is not for you.

  • APRS is a registered trademark of APRS Software and Bob Bruninga, WB4APR.

Metadata

Release files for core-aprs-client 0.98

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for core-aprs-client 0.98
File Size Uploaded
core_aprs_client-0.98.tar.gz 49.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for core-aprs-client 0.98
File Interpreter ABI Platform
core_aprs_client-0.98-py3-none-any.whl Python 3 none any Details

Total release size: 102.5 kB

Release files / core_aprs_client-0.98.tar.gz

Download URL core_aprs_client-0.98.tar.gz
Size 49.4 kB
Tags Source
SHA-256 checksum
How to use checksums
29d7704a593ba148bd98d4f5910dce7f9db65ad6fefc2d5b6b4347e1434d4fee
BLAKE2b-256 checksum
How to use checksums
145a298af885f986651314140f4674d82193963647dd398f9306e4bbb619d253
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / core_aprs_client-0.98-py3-none-any.whl

Download URL core_aprs_client-0.98-py3-none-any.whl
Size 53.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fc0c6b03001a89f023dd238711391caabb2928ee67662c0571a411ce7b6220c9
BLAKE2b-256 checksum
How to use checksums
5731d15c69c93bb24c7b29b972faada4917b0b9269282d9a38acc6b8d9699532
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.98 This release

2 release files

0.97

2 release files

0.96

2 release files

0.95

2 release files

0.93

2 release files

0.92

2 release files

0.91

2 release files

0.90

2 release files

0.80

2 release files

0.75

2 release files

0.61

2 release files

0.60

2 release files

0.55

2 release files

0.51

2 release files

0.50

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page