lineiform
atomic-server
lineiform | atomic-server | |
---|---|---|
8 | 15 | |
155 | 791 | |
- | 5.8% | |
0.0 | 9.5 | |
about 1 year ago | 6 days ago | |
Rust | TypeScript | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
lineiform
-
JITting functions in Rust for runtime performance flexibility
Sounds similar to lineiform. Which isn't all that stable or actively developed, but it is a cute approach to writing a meta-jit in rust. It's a weird approach, but IMO it's worth more experimentation.
-
What’s everyone working on this week (9/2022)?
Working on Lineiform, my meta-JIT library, some more.
-
Lineiform, a meta-JIT library for Rust interpreters
In response to Cranelift, switching to my own Tangle IR won't be using Cranelift at all (it uses raw dynasm-rs for emitting instructions). I go into a bit in https://github.com/chc4/lineiform/issues/19, but Cranelift specifically has some rules about iflags, the type they use to conceptualize processor flags effects (e.g. add's carryout or overflow). You can only have one iflags value live at a time, and it can't overlap with any other math operation. This is a problem because the x86 we're lifting doesn't always follow that rule, so if we just emit Cranelift as we go it will panic and say we built an invalid function.
I go into a bit in https://github.com/chc4/lineiform/issues/19, but it's less a problem with its optimizer and more a problem with its IR constraints. Cranelift specifically has some rules about `iflags`, the type they use to conceptualize processor flags effects (e.g. add's carryout or overflow). You can only have one `iflags` value live at a time, and it can't overlap with any other math operation. This is a problem because the x86 we're lifting doesn't always follow that rule, so if we just emit Cranelift as we go it will panic and say we built an invalid function.
The iflags design in general is kinda awkward too, and was being rethought a few months ago when I was first getting this working; I think they're planning on redesigning the add carryout interface and things to be slightly more streamlined. I suspect that any redesigned interface will have similar problems with mismatch between what I want from Cranelift and what 90% of other uses of Cranelfit want, though, and so I decided to just make my own IR instead.
-
What's everyone working on this week (3/2022)?
Working on the codegen backend for Lineiform again. I sketched out a plan on how to implement register allocation in a way that hopefully doesn't have horrible behavior in the majority of cases, and implemented ~half of it last week, and hopefully I'll implement the other half and instruction scheduling this week.
-
HN: == Happy New Year HN == (What is your “plans” for the new year?)
Yup, https://github.com/chc4/lineiform. It's not usable at all yet - I was building it on top of Cranelift, which turned out to be a fairly bad idea, so I'm going to have to essentially rewrite all of it with my own codegen backend I think. I've been hacking on it on and off but it's been much slower progress due to work (and writing a codegen backend is hard...)
-
What's everyone working on this week (32/2021)?
I got struck by either a very dumb or very good idea a few days ago, and finally have a working (minimal) proof-of-concept for it: Lineiform is a meta-JIT library to nearly automatically get an optimizing method JIT from a Rust interpreter. It does dynamic recompilation on closures by lifting from x86 to Cranelift IR for runtime function inlining and constant propagation.
atomic-server
-
[Help] Atomic Data installation and configuration
Reading through https://atomicdata.dev/ seemed like a good option for notes/cms with collaboration.
- A proposed standard for modeling and exchanging linked data
-
The Semantic Web is Dead - Long Live the Semantic Web!
Great read, wholeheartedly agree with your sentiments! We need to combine the vision of a web of linked data with the practicality of JSON. I think you’ll like Atomic Data, a project that I’ve been working on for almost three years now. It’s a modular specification that takes a strict subset of RDF to make it highly compatible with json. I’ve also written quite a bit of docs and some implementations, such as a server (written in rust) and a data browser (similar to notion), as well as a bunch of libraries.
-
Is there an example app that uses Sled database in Rust?
I use sled in Atomic Server. Here's the actual sled usage.
-
What’s everyone working on this week (9/2022)?
Working on Atomic-Server, a graph database / CMS for sharing structured data and schemas. Currently, I’m working on a CRDT implementation - trying to have conflict-free event-sourced version control system. Kind of harder than I thought!
-
Why Decentralization Matters (2021) - Big tech companies were built off the backbone of a free and open internet. Now, they are doing everything they can to make sure no one can compete with them [00:14:25]
So for the past few years, I've been working on a new open specification, called Atomic Data. It takes inspiration from the semantic web, but is far more practical in its design and easier to use. Instead of only writing a spec, I also wrote a server / database, a client (browser GUI), and various libraries - all open source.
-
Build smaller, faster, and more secure desktop applications with a web frontend | Tauri Studio
I've made a Database with a GUI, and Tauri helped me to make the desktop build. It's really promising project. It's very flexible in how you use it - I'm currently using its async runtime to run my Rust Actix server, and using the WebView to render a React app. Being able to easily create a desktop tray icon with actions is pretty cool. I'm really looking forward to Android + iOS support.
-
Publish and deploy semantic contents
I'm currently writing an open source database + server that helps with this process (it creates subject pages, gives you a Gui, serializes to RDF and other formats), called atomic-server. I think using this is currently the fastest way to get linked data deployed to the semantic web!
-
The metaverse could let Silicon Valley track your facial expressions, blood pressure, and your breathing rates — showing exactly why our internet laws need updating
I'll just take this opportunity to promote an open source, decentralised database that I've been working on, called Atomic-Server. It's fast (written in rust), features built in full text search, authorisation, dynamic forms, and it runs on low end hardware. It features a new specification called Atomic Data that combines the best of json, rdf and type safety.
-
What's everyone working on this week (44/2021)?
I'm working on adding authentication to atomic-server, an open source graph database with dynamic, decentralized schema validation.
What are some alternatives?
soundfingerprinting - Open source audio fingerprinting in .NET. An efficient algorithm for acoustic fingerprinting written purely in C#.
CubeSimRS - Rust based Rubik's Cube simulation and solving library.
cranelift-jit-demo - JIT compiler and runtime for a toy language, using Cranelift
awesome-wasm-langs - 😎 A curated list of languages that compile directly to or have their VMs in WebAssembly
augmented-audio - Rust - Augmented Audio Libraries
roaring-rs - A better compressed bitset in Rust
Nova - Implementation of "Ray Tracing in One Weekend": https://raytracing.github.io/books/RayTracingInOneWeekend.html
cargo-mutants - :zombie: Inject bugs and see if your tests catch them!
uom - Units of measurement -- type-safe zero-cost dimensional analysis
rust-rocksdb - rust wrapper for rocksdb
indicatif - A command line progress reporting library for Rust
tree-flat - TreeFlat is the simplest way to build & traverse a pre-order Tree in Rust