Add safe-async and vectordb
This commit is contained in:
parent
e0d7bcdc6e
commit
f0de742ef1
1 changed files with 66 additions and 20 deletions
86
index.html
86
index.html
|
@ -159,7 +159,7 @@
|
|||
</article>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Projects</h2>
|
||||
<h2>Notable Projects</h2>
|
||||
<article>
|
||||
<h3>pict-rs</h3>
|
||||
<p>
|
||||
|
@ -207,6 +207,59 @@
|
|||
day. It does this with a limit of two CPUs on one of my single-board computers.
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h3>Safe Async</h3>
|
||||
<p>
|
||||
<em>
|
||||
<a href="https://git.asonix.dog/safe-async" target="_blank">
|
||||
Safe Async on Forgejo
|
||||
</a>
|
||||
</em>
|
||||
</p>
|
||||
<p>
|
||||
Safe Async is a collection of components that make up a full asynchronous runtime for
|
||||
rust, made without any unsafe code. This is more a demonstration of possibility rather
|
||||
than an attempt to build a real production-grade runtime. Safe Async achieves this by
|
||||
relying on
|
||||
<a href="https://github.com/bytecodealliance/rustix" target="_blank">#rustix</a>, a
|
||||
library that provides safe bindings to posix APIs like <code>poll</code>.
|
||||
</p>
|
||||
<p>
|
||||
Safe Async is made of multiple components. At the lowest level, the <code>polldance</code>
|
||||
library provides an abstraction for registering and deregistering IO sources and Timers
|
||||
from an underlying polling mechanism. Next up from that is <code>foxtrot</code>, a library
|
||||
that uses polldance to create and wake IO futures with polldance. Up from there are
|
||||
<code>jitterbug</code> and <code>bachata</code>, which are multithreaded and
|
||||
single-threaded async executors that can be driven as futures on another runtime. And
|
||||
finally, there's <code>jive</code>. A full async runtime that combines the above libraries
|
||||
to provide a unified API for spawning and running tasks with IO.
|
||||
</p>
|
||||
<p>
|
||||
Safe Async also provides a number of utilities that are useful for working in async rust,
|
||||
like an implementation of select, join, join-all, notify, and mpsc. Simple integrations
|
||||
are provided with trust-dns (jive-dns) for asynchronous DNS resolution and hyper
|
||||
(hyperjive) for asynchronous HTTP clients and servers.
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h3>VectorDB</h3>
|
||||
<p>
|
||||
<em>
|
||||
<a href="https://git.asonix.dog/asonix/vectordb">
|
||||
VectorDB on Forgejo
|
||||
</a>
|
||||
</em>
|
||||
</p>
|
||||
<p>
|
||||
VectorDB is a simple database for storing and searching vectors in Rust, backed by
|
||||
<a href="https://www.redb.org" target="_blank">#redb</a>, an embedded key-value store for
|
||||
rust (similar to sled). My goal in building VectorDB was to implement reverse image search
|
||||
functionality for pict-rs, or maybe as a standalone application that works with pict-rs.
|
||||
While the database itself is pretty quick for finding similar vectors, actually computing
|
||||
those vectors using imagemagick takes a while. For this reason I am not currently pursuing
|
||||
reverse image search.
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h3>Various Libraries</h3>
|
||||
<p>
|
||||
|
@ -214,35 +267,28 @@
|
|||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://git.asonix.dog/asonix/activitystreams" target="_blank">
|
||||
activitystreams
|
||||
</a>, a library for parsing and generating valid ActivityStreams JSON objects
|
||||
<a href="https://git.asonix.dog/asonix/activitystreams" target="_blank">activitystreams</a>,
|
||||
a library for parsing and generating valid ActivityStreams JSON objects
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://git.asonix.dog/asonix/actix-form-data" target="_blank">
|
||||
actix-form-data
|
||||
</a>, a library for handling uploaded <code>multipart/formdata</code> in actix-web
|
||||
<a href="https://git.asonix.dog/asonix/actix-form-data" target="_blank">actix-form-data</a>,
|
||||
a library for handling uploaded <code>multipart/formdata</code> in actix-web
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://git.asonix.dog/asonix/actix-webfinger" , target="_blank">
|
||||
actix-webfinger
|
||||
</a>, a library for making and serving requests for webfinger in actix-web
|
||||
<a href="https://git.asonix.dog/asonix/actix-webfinger" , target="_blank">actix-webfinger</a>,
|
||||
a library for making and serving requests for webfinger in actix-web
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://git.asonix.dog/asonix/actix-actorless-websockets" target="_blank">
|
||||
actix-ws
|
||||
</a>, a library for managing websocket connections in actix-web without the actix actor
|
||||
framework
|
||||
<a href="https://git.asonix.dog/asonix/actix-actorless-websockets" target="_blank">actix-ws</a>,
|
||||
a library for managing websocket connections in actix-web without the actix actor framework
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://git.asonix.dog/asonix/background-jobs" target="_blank">
|
||||
background-jobs
|
||||
</a>, a library for managing retryable tasks that run in the background of an application
|
||||
<a href="https://git.asonix.dog/asonix/background-jobs" target="_blank">background-jobs</a>,
|
||||
a library for managing retryable tasks that run in the background of an application
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://git.asonix.dog/asonix/http-signature-normalization" target="_blank">
|
||||
http-signature-normalization
|
||||
</a>, a library implementing the HTTP Signatures IETF draft
|
||||
<a href="https://git.asonix.dog/asonix/http-signature-normalization" target="_blank">http-signature-normalization</a>,
|
||||
a library implementing the HTTP Signatures IETF draft
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://git.asonix.dog/asonix/tracing-awc" target="_blank">tracing-awc</a>, a
|
||||
|
|
Loading…
Reference in a new issue