Skip to content

aeharding/threadiverse

Repository files navigation

threadiverse

Unified typescript client for threadiverse APIs (Lemmy, Piefed, Mbin etc)

Warning

Early Development Stage: This project is under active development and may undergo significant API changes between versions. While v0, this project's design decisions will be guided by Voyager's usage.

Features

  • 🧙‍♂️ Automagic software detection via .well-known
  • 📦 API support:
    • ✅ Lemmy v0
    • ⚠️ Lemmy v1 - in development
    • ⚠️ Piefed - partial, experimental
    • ❌ Mbin - no support yet (PRs welcome!)
  • 🛑 Guaranteed response types via runtime Zod schema validation
  • 🛡️ Strongly typed internally: Uses official software types (Swagger from Piefed, lemmy-js-client from Lemmy) to enforce compat layer type correctness

Example

This project provides a ThreadiverseClient class which you can use similarly to lemmy-js-client's LemmyHttp class. For the most part, it should be a drop-in replacement.

pnpm i threadiverse
import { ThreadiverseClient } from "threadiverse";

const client = new ThreadiverseClient("https://lemmy.world");

const posts = await client.getPosts();

About

Unified typescript client for threadiverse instances (Lemmy, Piefed, Mbin etc)

Resources

License

Stars

Watchers

Forks

Packages

No packages published