IceshrimpをMisskeyにする苦行をしたい方は是非

AmaseCocoa
@cocoa@hackers.pub · 11 following · 11 followers
日本語多め
Pythonista/Author of apkit. An Modularized ActivityPub Toolkit.
main (Iceshrimp)
- @AmaseCocoa@i.amase.cc
YarukiNotFound
- amase.cc
Zenn
- @amasecocoa
観賞用サーバーの完成です
冗談抜きで面倒
鍵のローテーションで問題起こる実装があった記憶なのでユーザー名の変更機能、実装したさがあるけどできない気がする
あんまりいい方法じゃないけど鍵の使いまわしできれば別かな (ユーザー名がimmutableな前提で設計されてる実装あるだろうし無理)
最近PythonよりもTypeScript書いてることの方が増えてきてる
My windows is kind because, they removes my cli tool path to automatic, no ask. :)
MY WINDOWS IS CRAZY
そろそろ粗削りな部分を直して1.0までに安定させる段階に入るかも
apmodelの改善中
Undefinedが多すぎて型チェッカー周りが死ぬほど面倒になったので
これ、GraalPyのパッチを適用しないでそのままコンパイルしようとするせいでuvが使えないかもしれない
taskiq-psqlpyはブローカーのサポートがないから候補にならないんだよなぁ (PRはあるけどそれのコードのもとになってるtaskiq-pgにも少し不安なバグがある)
PleromaみたいにキューにもRDBを使うようにして簡略化したいんだけど需要に合致する使えるライブラリがない🫠
I want this!
方針を変えた
Connectorサーバーを別途で用意してプラグインはそこに対して収束するようにする
そうすればクライアントライブラリさえどうにかなれば言語関係なく実装できるようになる
うーん
コピーレフト回避するにはソケットとかが一番いい?
その場合はIPCで想定してたAPIが実装できるかテストする必要があるかも
I thinking, why often activitypub implementions uses a AGPL-3.0? 🤔
問題としてソフトウェアがAGPLだと感染する (個人的にはプラグインが拡張するソフトウェアのコードを含まない限りコピーレフトの制約に縛られることを望んでいない)のでどうしようってなる
この場合はプラグインAPIの概念をコアに分離してKagura (Mastodon API, Admin UI等)自体をそれのプラグインとして実装するのが妥当なんだろうけど悩む
ただその場合はコアにapkit.serverを実装しないと結局ライセンスに縛られかねない (Mastodon APIの実装側をAGPLにする方針の場合)
拡張可能にしようにもプラグインの概念は悪意ある拡張から保護できるような安全性がないからうーんってなってる
実装コストもあるのでひとまずv1で使われてるAPIを優先的に実装する
/api/v1/streaming実装してるんだけどなんか動かない🤔
多分FastAPI側がWebSocket用のルートを認識していない🤔
バイナリには敵わないけど簡単にセットアップできるのを目標としている (サーバーを動かす敷居を下げたい)
APIが無の状態でActivityPub実装すると面倒になるので先に実装してからかな
First-version of My ActivityPub Implemention
Deploy AnywhereなActivityPubサーバー書いてる
それはそうとActivityPubのフォローがAcceptしてもIceshrimpだと処理中のままになるんだよな何故か
apkitで簡単なBotを作る記事みたいなのを書くかも
Windowsに(開発)環境破壊された...
Force pushが原因?
ちょっと気になるのが1/2くらいの確率でinboxの検証が進まなくなるんだよね
うん、こういうときは文書読もうね
apkit間でしか使えない謎の署名実装が誕生して困る
あれ、draft-cavage-http-signatures-12って何のDigest計算するんだっけ...?
はぐれコミットがある...
Geminiがイライラしてる...
apkitのテスト用のコードで詰まってる箇所をだいたい特定するために大量のprintを追加した
apkitのActivityPubServerに関しては同期対応しないで非同期だけにしてる (分岐させてもいいけどわざわざこれでするであろう操作を同期でするとは考えてないから)
必要なら同期対応できるけどね
StarletteじゃなくてFastAPIベースにしたのはルートがデコレータで定義できたりするっていう理由がある (自分で実装してもいいかもしれないけど既存のものを基盤にできるならしたかった)
Coding ActivityPubServer...
SSDが死にかけなのかわからないけどuvが待ってもパッケージインストールしてくれないので開発できない...
apkit書き直すか
apmodel 0.4.0
書き直したばかりでまだドキュメント整備してないからもしも使いたいならソースコード見ながら使ってください
https://pypi.org/project/apmodel/0.4.0/
ActivityPubのオブジェクト周りの文書があんまりないのもあって頭が混乱してきた
Mastodonの引用ってどういう仕様だっけ
ひとまずActivityPubClientはapkitに入れておく (後で分離できるようにclient => apkitの依存性は含まないようにする)
Iceshrimpのサーバーが一方向になっている (サーバー <= ネットだけ)
僕がActivityPubを始めた理由 - Yaruki NotFound