A universal OAuth2.0 client written in Zig concurrency-ready
npm install gesttaltA universal OAuth2.0 client written in Zig concurrency-ready.
``bash`
npm install gesttalt
`js
const {
createSnippet,
listSnippets,
readSnippet,
updateSnippet,
deleteSnippet,
createPost,
listPosts,
readPost,
updatePost,
deletePost,
createNote,
listNotes,
readNote,
updateNote,
deleteNote,
} = require('gesttalt');
const projectDir = '.';
const timestamp = 1735148400;
const path = createSnippet(
projectDir,
timestamp,
'Example snippet',
'const x = 1;',
'example.zig'
);
const snippets = listSnippets(projectDir);
const snippet = readSnippet(projectDir, timestamp);
console.log(snippet);
updateSnippet(projectDir, timestamp, {
description: 'Updated description',
});
deleteSnippet(projectDir, timestamp);
const postPath = createPost(projectDir, 'hello-world', 'Hello', 'My first post', {
tags: ['zig', 'oauth2'],
});
const posts = listPosts(projectDir);
const post = readPost(projectDir, 'hello-world');
updatePost(projectDir, 'hello-world', { title: 'Updated title' });
deletePost(projectDir, 'hello-world');
const notePath = createNote(projectDir, timestamp, { body: 'Quick update' });
const notes = listNotes(projectDir);
const note = readNote(projectDir, String(timestamp));
updateNote(projectDir, String(timestamp), { body: 'Edited' });
deleteNote(projectDir, String(timestamp));
`
This package ships a WASM build for browser runtimes with an in-memory storage backend. To persist data across reloads, enable the browser storage helper.
`js
import { init, enableBrowserStorage, createSnippet } from 'gesttalt';
await init();
await enableBrowserStorage('/project');
createSnippet('/project', 1735148400, 'Example snippet', 'const x = 1;', 'example.zig');
`
Bun and Deno can use the same binding via their Node.js compatibility layers.
`bash`
bun run test.js
`bash`
deno run --allow-ffi --allow-read --allow-write test.js
`bashFrom project root
zig build -Doptimize=ReleaseFast
API
-
createSnippet(projectDir, timestamp, description, body, filename)
- listSnippets(projectDir)
- readSnippet(projectDir, timestamp)
- updateSnippet(projectDir, timestamp, update)
- deleteSnippet(projectDir, timestamp)
- createPost(projectDir, slug, title, description, options)
- listPosts(projectDir)
- readPost(projectDir, slug)
- updatePost(projectDir, slug, update)
- deletePost(projectDir, slug)
- createNote(projectDir, timestamp, options)
- listNotes(projectDir)
- readNote(projectDir, id)
- updateNote(projectDir, id, update)
- deleteNote(projectDir, id)`MIT