PHPackages                             golded-dev/laravel-ftn - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. golded-dev/laravel-ftn

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

golded-dev/laravel-ftn
======================

Shared FTN message-base reader contracts and value objects.

v1.2.0(1mo ago)054[2 PRs](https://github.com/golded-dev/laravel-ftn/pulls)4MITPHPPHP ^8.4CI passing

Since Apr 25Pushed yesterdayCompare

[ Source](https://github.com/golded-dev/laravel-ftn)[ Packagist](https://packagist.org/packages/golded-dev/laravel-ftn)[ Docs](https://github.com/golded-dev/laravel-ftn)[ RSS](/packages/golded-dev-laravel-ftn/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (5)Versions (7)Used By (4)

Laravel FTN
===========

[](#laravel-ftn)

Shared FTN/FidoNet reader contracts, value objects, and small parsing helpers for PHP 8.4.

Concrete reader packages use this as their common language.

It does not read Squish, JAM, Hudson, or any other message base by itself. That is deliberate. This package is the shared core, not the reader.

Installation
------------

[](#installation)

```
composer require golded-dev/laravel-ftn:^1.0
```

Requires PHP 8.4+.

What You Get
------------

[](#what-you-get)

- `MessageBaseReader`: interface for classes that read messages from a source path.
- `MessageSourceCatalog`: interface for classes that list readable message sources.
- `MessageWriter`: interface for classes that write outgoing messages.
- `MessageSourceLocator`: interface for resolving a message source path.
- `FtnAddress`: readonly value object for full FTN addresses.
- `ParsedMessage`: readonly value object for normalized message data.
- `ParsedArea`: readonly value object for message area metadata.
- `OutgoingMessage`: readonly value object for messages handed to writers.
- `ReaderOptions`: shared reader options.
- `WriterOptions`: shared writer options.
- `MessageControlLines`: parsed FTN control-line metadata.
- `MessageProvenance`: source metadata for imported messages.
- `CharsetDetector`: detects FTN charset kludges such as `CHRS` and `CHARSET`.
- `MojibakeRepairer`: repairs common FTN mojibake when the signal is strong enough.
- `ControlLines`: extracts selected FTN control lines.
- `Text`: helper methods for null-padded fields, body normalization, encoding conversion, and synthetic IDs.

What You Do Not Get
-------------------

[](#what-you-do-not-get)

- No concrete message-base reader.
- No concrete message writer.
- No Laravel service provider.
- No database models.
- No queues, commands, config publishing, or framework bootstrapping.

If you need a real reader, build it in a package that depends on this one.

Reading Messages
----------------

[](#reading-messages)

Concrete reader packages implement `MessageBaseReader`.

```
