oxide
Conkey
oxide | Conkey | |
---|---|---|
9 | 8 | |
276 | 16 | |
- | - | |
0.0 | 6.2 | |
over 1 year ago | 6 months ago | |
Rust | Haskell | |
Apache License 2.0 | 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.
oxide
-
SQLite Functions for Working with JSON
Sorry about that, it's just a shortcut for https://github.com/fcoury/oxide.
- Ask HN: What are your “scratch own itch” projects?
- Looking for paid advanced Rust tutoring
- OxideDB - Teach your PostgreSQL database how to speak MongoDB Wire Protocol.
- Show HN: OxideDB – Teach PostgreSQL Database How to Speak MongoDB Wire Protocol
-
Ask HN: What Are You Working On? (August 2022)
Mostly on MongoDB to PostgreSQL translation server: http://oxidedb.com or https://demo.oxidedb.com.
I have been wanting to dive deep into a Rust project and the challenge of implementing the MongoDB protocol and then translating it into some sort of SQL counterpart was the first thing that really clicked and got me excited enough to get me working on it nonstop for 3 weeks now.
Some backstory:
I have created a product that relies on MongoDB for a document store but doesn’t really need any of the distributed features to really justify having a hosted MongoDB or DocumentDB instance. Now that we’re trying to turn this into a product, we’re seeing that some companies have a little bit of resistance around managing yet another database. Most of our clients already have and manage PostgreSQL in one form or another. I knew that PostgreSQL already offered first class JSON support, but I didn’t want to rewrite the application data layer from scratch if I could avoid it. That’s when I started researching if there was a “proxy” that would translate the MongoDB protocol - that I was completely ignorant about - into PostgreSQL. To my surprise there was nothing ready for production use but I found MangoDB that later on became FerretDB. I delved into the code and was in love with the idea. The team around is really nice, but I found that they had greater ambitions - they basically wanted to offer multiple backends, namely Tigris, on top of PostgreSQL.
On the other hand, I have been waiting to find an excuse to delve deeply into the rust ecosystem but never really found something I was passionate about until I had the idea of challenging myself to see if I could learn about the protocol that MongoDB uses by relying on their public documentation and the hints I found on FerretDB.
Another thing I added to my toolbelt while developing this was about creating parsers. In order to transform MongoDB JSON to SQL queries, I ported an existing library from the MongoDB team from PEG.js to pest.rs!
It’s in very early stages, and it’s work from someone that is not yet super comfortable with the stack so keep in mind this is the beginning of a journey for me that I embarked out of pure joy on getting a tiny bit better on rust and making things click internally.
- OxideDB – Teach PostgreSQL Database How to Speak MongoDB Wire Protocol
Conkey
-
Ask HN: What apps have you created for your own use?
Most of my programs were written for my own use, including:
• A keyboard layout to type numerous non-English letters, punctuation marks and mathematical symbols, originally for Windows but subsequently ported to Linux and Mac [https://github.com/bradrn/Conkey]
• A ‘sound change applier’ for my hobby of language construction, to simulate the process of historical sound change [https://bradrn.com/brassica/]
• A small browser extension to save the full text of all webpages I visit, and a local client to search the database [not open-sourced, apologies!]
The first two have gained a few other users since being released, but I’m pretty sure I’m still the one who uses them the most!
-
I designed my own keyboard layout. Was it worth it?
I made my own crossplatform multilingual layout [0]. Although it’s based on QWERTY, it shouldn’t be hard to remap the Linux and Mac versions to any other base layout, since they’re autogenerated from the Windows version.
[0] https://github.com/bradrn/Conkey
-
Ask HN: What are your “scratch own itch” projects?
The biggest one for me is undoubtedly my custom keyboard layout Conkey [0], which I use constantly (including for typing this very comment). I hate the way the base US layout tends to get distorted in other keyboard layouts with good support for non-ASCII characters, so Conkey had the explicit goal of retaining that basic unshifted layout. I’ve also ended up porting Conkey to Mac and Linux — and given that I’m slowly switching from Windows to Linux, at least the Linux ports have ‘scratched my own itch’ too, which is nice.
Also, I made a utility to archive the full text of every website I view and store it in a SQLite database for searching. It’s proven pretty useful when I want to find something I saw a while ago and then forgot. (I haven’t attempted to open-source it, though — it consists of three entirely separate components, two of which were a pain to set up. I must try to get it into a more usable state one of these days.)
What else… my sound change applier [1], perhaps? Not that I use it very much, because I only need it on those occasions when I want to do some conlanging, which I haven’t had much time for recently. Actually, sound change appliers strike me as being very much a ‘scratch own itch’ type of project in general… sometimes it feels like every conlanger has written their own, and no two can agree on a nice design. Everyone just has their own unique preferred way of doing things.
[0] https://github.com/bradrn/Conkey
[1] https://github.com/bradrn/brassica
-
An accentuated Emacs experiment (à la macOS)
For a ~50-year-old program, Emacs’s support for multilingual input — and really, it’s all-round flexibility — continually amazes me! For myself I prefer my own custom keyboard layout [0], because it works outside Emacs too, but I’d happily use Emacs’s own input methods if that would be sufficient.
(In fairness, I have found one weak spot, namely font support… I’ve used ‘unicode-fonts’ [1] with some success, but reportedly it doesn’t work with the latest Emacs. Ah well, it’s at least fairly rare that this becomes a problem in practice.)
[0] https://github.com/bradrn/Conkey
[1] https://github.com/rolandwalker/unicode-fonts
- WinCompose – A Compose Key for Windows
-
A Mathematical Keyboard Layout (2018)
To port my keyboard layout [0] to OSX, I used ‘osxkb’ [1], which outputs an OSX keyboard layout bundle given a simple textual specification file. It was originally created specifically to port Conkey to OSX, but should be entirely usable for other purposes as well.
[0] https://github.com/bradrn/Conkey
-
The Design of Forms in Government Departments (1962)
> But instead, we're dealing with Latex - a language that overcomplicates the most basic features such as fonts, tables and special characters.
I can’t really argue with the rest of your post, but in my experience this is incorrect. Fonts and special characters are both trivial if you use XeTeX, and tables, though slightly clumsy, are still pretty easy. As an example, see the documentation I wrote for https://github.com/bradrn/Conkey, which makes extremely heavy use of all three features. (As documentation for a keyboard layout, it uses characters from pretty much every corner of Unicode, and accompanying tables of many shapes and sizes to show how to type these characters; I needed to use Gentium in order to render all these characters, with Times New Roman as a fallback. I found that LaTeX could ably handle all of these complecations.)
What are some alternatives?
rmkit - | remarkable app framework | https://rmkit.dev
espanso - Cross-platform Text Expander written in Rust
skeleton - A fully featured UI toolkit for Svelte + Tailwind. [Moved to: https://github.com/skeletonlabs/skeleton]
Scoop-Core - Shovel. Alternative, more advanced, and user-friendly implementation of windows command-line installer scoop.
PicoPico - Pico-8 Player
ibus - Intelligent Input Bus for Linux/Unix
pyroscope-rs - Pyroscope Profiler for Rust. Profile your Rust applications.
ScienceNotes - Just a keyboard for science notes on a Mac
reframe - LeapTable 🦘- The fastest way to build, deploy, and manage LLM-powered agents on tabular data (dataframes, SQL tables and Spreadsheets). [Moved to: https://github.com/peterwnjenga/leaptable]
9ime - Plan 9's unicode input method ported to windows
txtai - 💡 All-in-one open-source embeddings database for semantic search, LLM orchestration and language model workflows
https-bot - Find http urls that can be safely replaced by https url