npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@takosjp/yurucommu-core

v3.4.0

Published

English: [README.en.md](README.en.md)

Readme

Yurucommu Core

English: README.en.md

Yurucommu Core は、yurucommu family の製品 (yurucommu / yurumeet など) が共通で使う ActivityPub / API / DB / runtime エンジンのライブラリ です。分散 SNS の連合・サーバー API・ データベース層を 1 か所に実装しておくことで、各製品は UI に集中できます。

これはインストールできる製品の repo ではなく、OpenTofu Capsule (Git URL から取り込む 1 つのアプリ/インフラ単位) も持ちません。deploy できる製品は別の repo にあります。

  • yurucommu — フィード / ストーリー / プロフィールの fullstack product。yurucommu.com・ Worker artifact・OpenTofu Capsule を持ちます
  • yurumeet — トーク中心の fullstack product。yurume は discovery と push 登録で使う 短い client id / 略称です

できること

  • ActivityPub 連合 — フォロー・投稿・ブースト・いいね・返信をサーバーをまたいで行い、 コミュニティとつながりを結びます。HTTP-signature の検証、SSRF 対策済みの fetch、 actor / ドメインのブロックリストを備えます
  • サーバー API — actor・投稿・ストーリー・DM・コミュニティ・メディア・通知・ モバイル push の route を提供します
  • クライアント契約 — yurucommu・yurumeet・モバイル・代替クライアント向けの型付き SDK と discovery の型を提供します
  • 検索・通知・レコメンド — 人とコンテンツを見つけられます
  • 認証 — パスワード、Google / X OAuth、Takosumi Accounts の OIDC クライアントに対応します
  • 二言語 UI — 日本語 / 英語に対応します

使い方の境界

この repo を Capsule としてインストールしないでください。代わりに yurucommu または yurumeet をインストールします。これらの製品 repo が、自分の UI とこのサーバーエンジンを束ね、 自分の Worker artifact を公開し、自分の plain OpenTofu module を持ちます。

クライアント実装は @takosjp/yurucommu-api を使ってください。製品の Worker artifact は @takosjp/yurucommu-core/server で Hono backend を作成し、 @takosjp/yurucommu-core/migrations で D1 migration を有効化します。この checkout の 未公開 source path を import してはいけません。

開発者向け

cd yurucommu-core
bun install
bun run check   # tsc --noEmit
bun test        # bun:test suite
bun run lint    # type check
bun run fmt     # prettier

backend エンジンの source は src/backend (Hono routes、ActivityPub 連合、配送 pipeline)、 共有 npm API package は packages/api、データベースの schema と migration は src/db/schemamigrations/ にあります。

API package のコマンド:

bun run build:api  # build @takosjp/yurucommu-api
bun run pack:api   # npm pack --dry-run for the API package

通知機能を含む 3.1.0 の release 順序

ブラウザ通知の public API と 0019_notification_push_delivery.sql は core / API 3.1.0 からの契約です。 まずこの repo で両 package を同じ v3.1.0 tag から npm に公開し、packaged consumer gate が通ることを確認します。 その公開が registry から取得できるようになった後にだけ、yurucommu / yurumeet の dependency range と bun.lock を registry package から更新し、各 repo の bun run check:core-release を通してから製品版 Worker を release します。file: / workspace: / Git dependency で未公開 source を代用してはいけません。

Yurumeet とモバイルクライアントは別 repo にあります。これらは @takosjp/yurucommu-api に依存し、 Capsule の output または /.well-known/social-server でサーバーを見つけ、自分の静的/runtime artifact を Takosumi・Cloudflare・self-host の実行環境で deploy します。デバッグ用に clients/ の下へローカル checkout を置けますが、このディレクトリは意図的に git 管理外に してあり、サーバー repo を小さく保ちます。

クライアントが別 origin で動く場合、yurucommu サーバー側の CORS / CSRF の許可リストに その origin を含める必要があります。

製品としての境界

Yurucommu は ActivityPub 連合・コンテンツ配送・ユーザー identity をすべてアプリ層で自前実装して います。Takos core のサービスにも、プラットフォーム層の連合の仕組みにも依存しません。Takosumi 経由で インストールされた場合もユーザーが削除できる通常の Capsule であり、Takos core に取り込まれることは ありません。詳しい境界は AGENTS.md を参照してください。

ドキュメント