Přeskočit k příběhu projektu
TSEN

Vybrané projekty / 0808

Čtyři veřejné repozitáře; keepline a Ultimate Widget se udržují

Open source

Čtyři malé nástroje pro problémy, které se pořád vracejí.

  • npm
  • GitHub
  • macOS
import { createSocket, exponentialBackoff } from 'keepline'

const line = createSocket({
  url,
  heartbeat: { message: ping },
  reconnect: { backoff: exponentialBackoff({ jitter: 'equal' }) },
  schema: serverMessage,
  onEvent: observe,
})

const releaseOrders = line.subscription({
  subscribe: { type: 'subscribe', topic: 'orders' },
  unsubscribe: { type: 'unsubscribe', topic: 'orders' },
})
CLIENTSERVER
  1. 01 / Připojeno
  2. 02 / Síť vypadla
  3. 03 / Opakování s backoffem
  4. 04 / Obnoveno · odběry přehrány
STATUSPřipojeno
Fronta: 00 FLUSHED

01 / Příběh

Co muselo fungovat.

WebSocketové spojení není request. Je to věc, která ve tři ráno tiše umře na hotelové wi-fi a vrátí se rozbitá. keepline je přesně ta vrstva, napsaná jednou místo počtvrté: obnova spojení s jitterovaným backoffem, aby tisíc klientů neušlapalo server ve chvíli, kdy se zvedne; heartbeaty, které odhalí polootevřený socket, o kterém operační systém pořád tvrdí, že je v pořádku; validace schématu na hranici, aby byl vadný rámec typovanou chybou, a ne pádem o tři komponenty dál; a události, které se dají doopravdy vystavit na dashboard.

Jádro nemá žádné runtime závislosti a dodává ESM i CJS build. Volitelné bindingy pro React 18+ stojí vedle něj, takže jádro zůstává bez frameworku.

Vedle toho stojí Ultimate Widget: šest nativních nástrojů pro macOS v jedné klidné Swift aplikaci — launcher, historie schránky, správa oken, režim proti uspání, odpočet schůzek a průzkumník disku — plus dva publikované scroll-to hooky pro Framer Motion a react-spring.

02 / Důkazy

Co se dá ověřit.

  1. 010 runtime závislostí jádra
  2. 026 nativních nástrojů pro macOS
  3. 032 publikované scroll-to hooky

03 / Dodání

Podoba, která šla ven.

Role
Autor — všechny čtyři repozitáře
Platformy
npm / GitHub / macOS
Aktuální stav
Čtyři veřejné repozitáře; keepline a Ultimate Widget se udržují
Postaveno s
TypeScript / Swift 6 / AppKit + SwiftUI / ESM / React bindingy / Nula runtime závislostí

Máte něco, co musí fungovat?

Začít jednou větou