@sirena-lwm2m/server
v0.2.0
Published
A TypeScript LwM2M server for the devices that can't speak for themselves.
Readme
sirena-lwm2m-server
A TypeScript LwM2M server for the devices that can't speak for themselves.
Documentation
- The OMA LwM2M object model (
ObjectRegistry, standard objects 0..10,ObjectDefinition,ResourceDefinition) now lives in@sirena-lwm2m/coreand is re-exported from this package.
Dependency policy
The library (@sirena-lwm2m/server) has zero mandatory production dependencies. Optional adapters (express, ws) are declared as optionalDependencies and loaded only via subpath imports (@sirena-lwm2m/server/transport/http, etc.). Peer dependencies (@sirena-lwm2m/coap, mqtt) must be installed by the consumer when needed. SQLite support uses the built-in node:sqlite module (Node 24+) — no install step required.
A CI job (.github/workflows/dep-tree-guard.yml) enforces this on every PR and push to main. It packs the library, installs it in a clean directory, and fails the build if any of the following appear in the resulting dep tree: express, ws, mqtt, aedes, @sirena-lwm2m/coap.
The Story
In the waters below Sorrento's cliffs, the Sirens once lured sailors with signals no one could ignore. Somewhere between the fourth espresso and a heated debate about CBOR encoding, a group of engineers sitting on a terrace above the Tyrrhenian Sea realized they were building the same thing — a way for tiny, voiceless devices to sing clearly across any network. Sirena was named that afternoon. Not for the danger, but for the clarity of the signal.
