Skip to content

Commit cf1b333

Browse files
authored
Merge pull request #33 from tgiachi/develop
docs: remove em dashes across docs and package READMEs
2 parents 942a6b8 + 7db25b9 commit cf1b333

65 files changed

Lines changed: 138 additions & 138 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/articles/concepts/abstractions-first.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ SquidStd is built abstractions-first: code depends on contracts, and concrete ba
44

55
## Contract package plus provider packages
66

7-
Each capability is a contract package paired with one or more provider packages. The contract package `*.Abstractions` defines the interfaces and DTOs. Provider packages implement them. Your application references the abstraction and depends on the provider only in the host project. See the [architecture](architecture.md) overview for how this shapes the package graph.
7+
Each capability is a contract package paired with one or more provider packages. The contract package - `*.Abstractions` - defines the interfaces and DTOs. Provider packages implement them. Your application references the abstraction and depends on the provider only in the host project. See the [architecture](architecture.md) overview for how this shapes the package graph.
88

99
## In-memory for tests, external for prod
1010

1111
Most capabilities ship an in-memory provider for tests and an external-backend provider for production:
1212

13-
- **Messaging** in-memory, or `SquidStd.Messaging.RabbitMq` / `SquidStd.Messaging.Sqs`.
14-
- **Caching** in-memory, or `SquidStd.Caching.Redis`.
15-
- **Storage** file-backed, or `SquidStd.Storage.S3` (S3 and MinIO).
13+
- **Messaging** - in-memory, or `SquidStd.Messaging.RabbitMq` / `SquidStd.Messaging.Sqs`.
14+
- **Caching** - in-memory, or `SquidStd.Caching.Redis`.
15+
- **Storage** - file-backed, or `SquidStd.Storage.S3` (S3 and MinIO).
1616

1717
Tests run fast and deterministically against the in-memory provider; production swaps in the external backend.
1818

1919
## Swapping providers without touching call sites
2020

21-
Because call sites depend only on the contract, switching backends is a registration change in the host `container.AddInMemoryMessaging()` versus `container.AddRabbitMqMessaging(...)` with no edits to the code that publishes or consumes messages. See [dependency injection](dependency-injection.md) for the registration pattern that makes the swap a one-line change.
21+
Because call sites depend only on the contract, switching backends is a registration change in the host - `container.AddInMemoryMessaging()` versus `container.AddRabbitMqMessaging(...)` - with no edits to the code that publishes or consumes messages. See [dependency injection](dependency-injection.md) for the registration pattern that makes the swap a one-line change.

docs/articles/concepts/architecture.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ Every capability is split in two: an `*.Abstractions` package that holds the con
1010

1111
The dependency flow runs in one direction:
1212

13-
- **Core** (`SquidStd.Core`) primitives, options, and the building blocks everything else sits on.
14-
- **Abstractions** per-capability contract packages.
15-
- **Providers** concrete implementations of those contracts.
16-
- **Host** `SquidStdBootstrap` composes services and runs them.
13+
- **Core** (`SquidStd.Core`) - primitives, options, and the building blocks everything else sits on.
14+
- **Abstractions** - per-capability contract packages.
15+
- **Providers** - concrete implementations of those contracts.
16+
- **Host** - `SquidStdBootstrap` composes services and runs them.
1717

1818
Higher layers depend on lower ones, never the reverse.
1919

@@ -30,5 +30,5 @@ graph TD
3030

3131
## Next
3232

33-
- [Bootstrap lifecycle](bootstrap-lifecycle.md) how the host starts and stops services.
34-
- [Abstractions first](abstractions-first.md) the contract-plus-provider pattern in depth.
33+
- [Bootstrap lifecycle](bootstrap-lifecycle.md) - how the host starts and stops services.
34+
- [Abstractions first](abstractions-first.md) - the contract-plus-provider pattern in depth.

docs/articles/concepts/messaging-models.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ The Event Bus (`IEventBus`) is a stateless broadcast. Publishers call `PublishAs
88

99
## Command Dispatcher
1010

11-
The Command Dispatcher is a stateless request routed to a single handler that returns a result. Unlike the Event Bus there is exactly one handler per command, and the caller awaits its result. Use it for request/response work validating input, performing an operation, returning an outcome where ownership of the action is unambiguous.
11+
The Command Dispatcher is a stateless request routed to a single handler that returns a result. Unlike the Event Bus there is exactly one handler per command, and the caller awaits its result. Use it for request/response work - validating input, performing an operation, returning an outcome - where ownership of the action is unambiguous.
1212

1313
## Actors
1414

docs/articles/felix.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Felix Network
22

33
**[Felix Network](https://github.com/tgiachi/SquidStd-Felix)** is a standalone companion library to
4-
SquidStd: secure, cross-platform **binary mesh networking** for .NET and for a constrained C
4+
SquidStd: secure, cross-platform **binary mesh networking** for .NET - and for a constrained C
55
target such as the ESP32. It lives in its own repository and ships its own NuGet packages under the
66
`SquidStd.Felix.*` prefix.
77

@@ -12,15 +12,15 @@ nodes over **ENet** (reliable UDP), behind a small **portable binary frame** tha
1212
can speak byte-for-byte. On top of that secure node it adds an optional self-forming **mesh** layer
1313
(seed discovery + gossip of the peer list with auto-connect).
1414

15-
- **Secure node** ENet transport, the portable frame (its header is authenticated as AES-GCM
15+
- **Secure node** - ENet transport, the portable frame (its header is authenticated as AES-GCM
1616
additional data), best-effort DEFLATE, and a raw `(type, bytes)` API.
17-
- **Typed layer** optional `Send<T>` / `On<T>` over MemoryPack with a `[FelixMessage(id)]`
17+
- **Typed layer** - optional `Send<T>` / `On<T>` over MemoryPack with a `[FelixMessage(id)]`
1818
attribute mapping message types to wire ids.
19-
- **Mesh** fully-connected, self-healing peer discovery via seeds and portable gossip.
20-
- **Pluggable transport** the encrypted frame is transport-agnostic; `ITransport` decouples the
19+
- **Mesh** - fully-connected, self-healing peer discovery via seeds and portable gossip.
20+
- **Pluggable transport** - the encrypted frame is transport-agnostic; `ITransport` decouples the
2121
node from the link (ENet ships; a serial/UART transport carries Felix over a reliable serial or
2222
Bluetooth RFCOMM stream without WiFi).
23-
- **Portable** the wire format is documented for non-.NET targets, with a host-testable C core
23+
- **Portable** - the wire format is documented for non-.NET targets, with a host-testable C core
2424
(`felix-c`) and ESP32 (ESP-IDF) examples proving byte-for-byte C↔.NET parity.
2525

2626
## Packages
@@ -84,7 +84,7 @@ mesh.Broadcast(type: 7, "hi mesh"u8.ToArray());
8484

8585
The protocol is portable. The Felix repository ships a portable C core (`felix-c`: AES-256-GCM over
8686
mbedTLS, raw-DEFLATE inflate, the Felix frame, an ENet leaf transport, and a `felix_serial` UART
87-
module) plus host harnesses all testable without an ESP32, proving byte-for-byte C↔.NET parity.
87+
module) plus host harnesses - all testable without an ESP32, proving byte-for-byte C↔.NET parity.
8888
The same C builds on an ESP32 (ESP-IDF), over ENet/WiFi or over UART / Bluetooth Classic SPP.
8989

9090
## Learn more

docs/articles/guides/choosing-search-database.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ bootstrap.ConfigureServices(container => container.RegisterDatabase());
2020

2121
Reach for `AddElasticsearch` when the core requirement is searching text or
2222
documents by relevance; use `RegisterDatabase` with the FreeSql provider that
23-
matches your engine for everything relational. They compose many apps use both.
23+
matches your engine for everything relational. They compose - many apps use both.

docs/articles/guides/security.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,5 @@ hashing credentials, protecting payloads with a key, and storing named secrets.
3939
## Recommendation
4040

4141
Use `HashUtils` for credentials, `ISecretProtector` (AES-GCM locally, KMS in the
42-
cloud) for encrypting blobs, and `ISecretStore` for named secrets backed by
42+
cloud) for encrypting blobs, and `ISecretStore` for named secrets - backed by
4343
files in development and AWS Secrets Manager in production.

docs/articles/health-checks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ The health-check aggregator (`IHealthCheckService` in `SquidStd.Core`, implement
55

66
- Implement `IHealthCheck` (`Name` + `CheckAsync`) and register it as `IHealthCheck`.
77
- `CheckHealthAsync()` runs all checks **in parallel**, each with a per-check timeout and exception
8-
isolation a failing or timed-out check becomes an `Unhealthy` entry without breaking the others.
8+
isolation - a failing or timed-out check becomes an `Unhealthy` entry without breaking the others.
99
- The overall `HealthReport.Status` is `Unhealthy` if any check is `Unhealthy`, otherwise `Healthy`.
1010

1111
```csharp

docs/articles/scheduler.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ standard 5-field cron expressions evaluated in UTC.
55

66
- `Schedule(name, cronExpression, handler)` → returns a job id.
77
- `Unschedule(jobId)` / `UnscheduleByName(name)`.
8-
- `Jobs` a snapshot of registered jobs (`CronJobInfo`).
8+
- `Jobs` - a snapshot of registered jobs (`CronJobInfo`).
99

1010
Each job is a one-shot, self-rescheduling timer on the timer wheel: when it fires, the handler is
1111
dispatched through `IJobSystem`, and the next occurrence is registered. An occurrence is **skipped** if the
@@ -31,7 +31,7 @@ scheduler.Schedule("cleanup", "0 3 * * *", async ct =>
3131
## Event loop
3232

3333
For applications that need a tight, frame-driven loop (game servers, simulations, real-time
34-
processing), `SquidStd.Services.Core` provides `EventLoopService` a dedicated background thread
34+
processing), `SquidStd.Services.Core` provides `EventLoopService` - a dedicated background thread
3535
(`SquidStd-EventLoop`) that, every frame:
3636

3737
1. drains the `IMainThreadDispatcher` (deferred callbacks posted with `Post`), and
@@ -67,7 +67,7 @@ eventLoop:
6767
### Event loop vs. timer-wheel pump
6868
6969
Both `EventLoopService` and `TimerWheelPumpService` advance the timer wheel, so they are **mutually
70-
exclusive** register exactly one. The exclusivity is structural: both implement the
70+
exclusive** - register exactly one. The exclusivity is structural: both implement the
7171
`ITimerWheelDriver` marker, `RegisterEventLoop()` throws if a driver is already registered, and modules
7272
that need the wheel (the worker manager, the mail poller) auto-register the pump only when no driver is
7373
present. Use the pump for ordinary apps where a coarse periodic pump is enough; use the event loop when

docs/articles/serialization.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
SquidStd uses a single serialization abstraction across the framework, defined in `SquidStd.Core`:
44

5-
- `IDataSerializer` `ReadOnlyMemory<byte> Serialize<T>(T value)`
6-
- `IDataDeserializer` `T Deserialize<T>(ReadOnlyMemory<byte> data)`
5+
- `IDataSerializer` - `ReadOnlyMemory<byte> Serialize<T>(T value)`
6+
- `IDataDeserializer` - `T Deserialize<T>(ReadOnlyMemory<byte> data)`
77

88
The default implementation, `JsonDataSerializer`, uses `System.Text.Json` Web defaults and implements
99
both interfaces. It is registered by `RegisterCoreServices()` (via `RegisterDataSerializer()`), so both

docs/index.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ _layout: landing
88

99
# SquidStd
1010

11-
A batteries-included, modular standard library for .NET 10 distilled from years of building
11+
A batteries-included, modular standard library for .NET 10 - distilled from years of building
1212
real-world server software. Each capability ships behind a small contract with an in-memory
1313
implementation for tests and a production backend, published as a focused NuGet package.
1414

1515
Security & crypto, configuration, persistence, messaging, caching, storage, a virtual filesystem,
16-
search, mail, workers, actors, telemetry, scripting take only what you need.
16+
search, mail, workers, actors, telemetry, scripting - take only what you need.
1717

1818
## Start here
1919

20-
- **[Tutorials](tutorials/index.md)** learn by building: bootstrap, caching, messaging, workers,
20+
- **[Tutorials](tutorials/index.md)** - learn by building: bootstrap, caching, messaging, workers,
2121
crypto, persistence, and more.
22-
- **[Guides](articles/guides/configuration.md)** task-focused how-to and "which provider" decision guides.
23-
- **[Concepts](articles/concepts/architecture.md)** the architecture and the ideas behind it.
24-
- **[Packages](articles/getting-started.md)** per-package reference.
25-
- **[API reference](api/index.md)** full type/member documentation.
26-
- **[Felix Network](articles/felix.md)** companion secure binary mesh-networking library (.NET + C/ESP32).
22+
- **[Guides](articles/guides/configuration.md)** - task-focused how-to and "which provider" decision guides.
23+
- **[Concepts](articles/concepts/architecture.md)** - the architecture and the ideas behind it.
24+
- **[Packages](articles/getting-started.md)** - per-package reference.
25+
- **[API reference](api/index.md)** - full type/member documentation.
26+
- **[Felix Network](articles/felix.md)** - companion secure binary mesh-networking library (.NET + C/ESP32).

0 commit comments

Comments
 (0)