A small tool to view real-world ActivityPub objects as JSON! Enter a URL
or username from Mastodon or a similar service below, and we'll send a
request with
the right
Accept
header
to the server to view the underlying object.
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"ostatus": "http://ostatus.org#",
"atomUri": "ostatus:atomUri",
"inReplyToAtomUri": "ostatus:inReplyToAtomUri",
"conversation": "ostatus:conversation",
"sensitive": "as:sensitive",
"toot": "http://joinmastodon.org/ns#",
"votersCount": "toot:votersCount",
"Hashtag": "as:Hashtag"
}
],
"id": "https://mastodon.bsd.cafe/users/zirias/statuses/114354254853751795",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2025-04-17T16:30:53Z",
"url": "https://mastodon.bsd.cafe/@zirias/114354254853751795",
"attributedTo": "https://mastodon.bsd.cafe/users/zirias",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mastodon.bsd.cafe/users/zirias/followers"
],
"sensitive": false,
"atomUri": "https://mastodon.bsd.cafe/users/zirias/statuses/114354254853751795",
"inReplyToAtomUri": null,
"conversation": "tag:bsd.cafe,2025-04-17:objectId=15867033:objectType=Conversation",
"content": "<p>Today, I implemented the <a href=\"https://mastodon.bsd.cafe/tags/async\" class=\"mention hashtag\" rel=\"tag\">#<span>async</span></a> / <a href=\"https://mastodon.bsd.cafe/tags/await\" class=\"mention hashtag\" rel=\"tag\">#<span>await</span></a> pattern (as known from <a href=\"https://mastodon.bsd.cafe/tags/csharp\" class=\"mention hashtag\" rel=\"tag\">#<span>csharp</span></a> and meanwhile quite some other languages) ...</p><p>... in good old <a href=\"https://mastodon.bsd.cafe/tags/C\" class=\"mention hashtag\" rel=\"tag\">#<span>C</span></a>! 😎 </p><p>Well, at least sort of.</p><p>* It requires some standard library support, namely <a href=\"https://mastodon.bsd.cafe/tags/POSIX\" class=\"mention hashtag\" rel=\"tag\">#<span>POSIX</span></a> user context switching with <a href=\"https://mastodon.bsd.cafe/tags/getcontext\" class=\"mention hashtag\" rel=\"tag\">#<span>getcontext</span></a> and friends, which was deprecated in POSIX-1.2008. But it's still available on many systems, including <a href=\"https://mastodon.bsd.cafe/tags/FreeBSD\" class=\"mention hashtag\" rel=\"tag\">#<span>FreeBSD</span></a>, <a href=\"https://mastodon.bsd.cafe/tags/NetBSD\" class=\"mention hashtag\" rel=\"tag\">#<span>NetBSD</span></a>, <a href=\"https://mastodon.bsd.cafe/tags/Linux\" class=\"mention hashtag\" rel=\"tag\">#<span>Linux</span></a> (with <a href=\"https://mastodon.bsd.cafe/tags/glibc\" class=\"mention hashtag\" rel=\"tag\">#<span>glibc</span></a>). It's NOT available e.g. on <a href=\"https://mastodon.bsd.cafe/tags/OpenBSD\" class=\"mention hashtag\" rel=\"tag\">#<span>OpenBSD</span></a>, or Linux with some alternative libc.</p><p>* I can't do anything about the basic language syntax, so some boilerplate comes with using it.</p><p>* It has some overhead (room for extra stacks, even extra syscalls as getcontext unfortunately also always saves/restores the signal mask)</p><p>But then ... async/await in C! 🥳 </p><p>Here are the docs:<br /><a href=\"https://zirias.github.io/poser/api/latest/class_p_s_c___async_task.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">zirias.github.io/poser/api/lat</span><span class=\"invisible\">est/class_p_s_c___async_task.html</span></a></p><p><a href=\"https://mastodon.bsd.cafe/tags/C\" class=\"mention hashtag\" rel=\"tag\">#<span>C</span></a> <a href=\"https://mastodon.bsd.cafe/tags/coding\" class=\"mention hashtag\" rel=\"tag\">#<span>coding</span></a></p>",
"contentMap": {
"en": "<p>Today, I implemented the <a href=\"https://mastodon.bsd.cafe/tags/async\" class=\"mention hashtag\" rel=\"tag\">#<span>async</span></a> / <a href=\"https://mastodon.bsd.cafe/tags/await\" class=\"mention hashtag\" rel=\"tag\">#<span>await</span></a> pattern (as known from <a href=\"https://mastodon.bsd.cafe/tags/csharp\" class=\"mention hashtag\" rel=\"tag\">#<span>csharp</span></a> and meanwhile quite some other languages) ...</p><p>... in good old <a href=\"https://mastodon.bsd.cafe/tags/C\" class=\"mention hashtag\" rel=\"tag\">#<span>C</span></a>! 😎 </p><p>Well, at least sort of.</p><p>* It requires some standard library support, namely <a href=\"https://mastodon.bsd.cafe/tags/POSIX\" class=\"mention hashtag\" rel=\"tag\">#<span>POSIX</span></a> user context switching with <a href=\"https://mastodon.bsd.cafe/tags/getcontext\" class=\"mention hashtag\" rel=\"tag\">#<span>getcontext</span></a> and friends, which was deprecated in POSIX-1.2008. But it's still available on many systems, including <a href=\"https://mastodon.bsd.cafe/tags/FreeBSD\" class=\"mention hashtag\" rel=\"tag\">#<span>FreeBSD</span></a>, <a href=\"https://mastodon.bsd.cafe/tags/NetBSD\" class=\"mention hashtag\" rel=\"tag\">#<span>NetBSD</span></a>, <a href=\"https://mastodon.bsd.cafe/tags/Linux\" class=\"mention hashtag\" rel=\"tag\">#<span>Linux</span></a> (with <a href=\"https://mastodon.bsd.cafe/tags/glibc\" class=\"mention hashtag\" rel=\"tag\">#<span>glibc</span></a>). It's NOT available e.g. on <a href=\"https://mastodon.bsd.cafe/tags/OpenBSD\" class=\"mention hashtag\" rel=\"tag\">#<span>OpenBSD</span></a>, or Linux with some alternative libc.</p><p>* I can't do anything about the basic language syntax, so some boilerplate comes with using it.</p><p>* It has some overhead (room for extra stacks, even extra syscalls as getcontext unfortunately also always saves/restores the signal mask)</p><p>But then ... async/await in C! 🥳 </p><p>Here are the docs:<br /><a href=\"https://zirias.github.io/poser/api/latest/class_p_s_c___async_task.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">zirias.github.io/poser/api/lat</span><span class=\"invisible\">est/class_p_s_c___async_task.html</span></a></p><p><a href=\"https://mastodon.bsd.cafe/tags/C\" class=\"mention hashtag\" rel=\"tag\">#<span>C</span></a> <a href=\"https://mastodon.bsd.cafe/tags/coding\" class=\"mention hashtag\" rel=\"tag\">#<span>coding</span></a></p>"
},
"attachment": [],
"tag": [
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/async",
"name": "#async"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/await",
"name": "#await"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/csharp",
"name": "#csharp"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/c",
"name": "#c"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/posix",
"name": "#posix"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/getcontext",
"name": "#getcontext"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/freebsd",
"name": "#freebsd"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/netbsd",
"name": "#netbsd"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/linux",
"name": "#linux"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/glibc",
"name": "#glibc"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/openbsd",
"name": "#openbsd"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/coding",
"name": "#coding"
}
],
"replies": {
"id": "https://mastodon.bsd.cafe/users/zirias/statuses/114354254853751795/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://mastodon.bsd.cafe/users/zirias/statuses/114354254853751795/replies?only_other_accounts=true&page=true",
"partOf": "https://mastodon.bsd.cafe/users/zirias/statuses/114354254853751795/replies",
"items": []
}
},
"likes": {
"id": "https://mastodon.bsd.cafe/users/zirias/statuses/114354254853751795/likes",
"type": "Collection",
"totalItems": 10
},
"shares": {
"id": "https://mastodon.bsd.cafe/users/zirias/statuses/114354254853751795/shares",
"type": "Collection",
"totalItems": 4
}
}