

Discover more from hrbrmstr's Daily Drop
Today, the focus is on all things fast and furious.
Will I take advantage of the Drop's title theme in the future by tacking on version numbers?
Absolutely.
Though, as astute readers likely noticed, they will be properly semverd.
Programming note: your friendly neighborhood Substack-Man is more than a tad under the weather at the moment. So much so that last night's fancy
💙 Day plans needed to be canceled.
Apologies for any section brevity that might ensue.
Fast Parsing HTTP Verbs
Anyone who has dipped their toes into the odd world that is C++ is very, very likely familiar with Boost. In their (the Boost organization) own words, “Boost provides free peer-reviewed portable C++ source libraries.”. Boost works on almost any modern operating system, including most UNIX and Windows variants. It provides an impressive diversity of platform-agnostic functionality that the C++ standard library (STL) kind of missed (though it is not a full replacement of the STL). While it can be a bit of a slog to install and update, your applications only link what they need, and there is much functionality baked into header files that have no other dependencies.
If you do any web work (look how seamlessly I justified a Spider-Man reference earlier?) in C++, you have 100% used the Beast. That library handles HTTP and WebSockets like a champ. In the HTTP world, one deals quite frequently with verbs. Verbs power every web interaction. Need to grab something from a URL? Go on and GET
it. Have something you want to say? Go ahead and POST
it. There are 39 of them (please forgive the “33” posit in the forthcoming link drop, it's not that important).
Since these verbs get used quite a bit, speed can be of the essence, depending on the context.
When Wojciech Muła's organization started to work with Beast, Wojciech got a bit fixated on the way Beast dealt with these verbs. He noticed that the Beast HTTP verb parser deal with them as a hard-coded trie, which led him to investigate further.
Wojciech does a fantastic job digging into the Beast implementation, then proposes a clever, alternate solution.
Given my present diminished capacity, I'm more than comfortable leaving you in his capable hands and words to discover how he managed to shave off some precious μs from the base Beast implementation.
In other news: C++23 has been finalized.
Cyber
Developers: If you name something after my primary profession,
you will 100% attract my attention.
Cyber [GH] is “a new language for fast, efficient, and concurrent scripting.” It's designed to be embeddable into applications, games, and engines on desktops or the web. Plus, it has a CLI for general purpose scripting.
OK. Stop 🛑.
I can hear you all the way over here in southern Maine. Yes, we already have Lua, the nigh ubiquitous language that powers Pandoc filters, existing game engines, and a language these Drops has oft mentioned. Why on earth do we need YASL (yet another scripting language).
One persistent human trait is the compelling need to continually improve upon the status quo. That trait is also super annoying at times. But, in the case of Cyber, it's fairly impressive. Cyber mostly wipes the floor with Lua (performance-wise), and that's something Wren was hoping desperately to hold claim to.
Cyber is fast due to design decisions at the language level as well as the VM implementation.
Again, I'm going to lean heavily on your sympathies and leave you in their hands to explain the performance design decisions.
Now, I am personally a bit wary of their decision to rely on libtcc for some embedding functionality. However, the project itself is based primarily on Zig, so the developers are most certainly forward-thinking. Plus, they have made enough other, solid choices that have me believing Cyber definitely has some legs (perhaps, even eight of them 🕷️), and could be a good choice if you need some scripting support in your next project.
Mellisearch
If one lesson ChatGPT has hopefully taught us it’s that the present generation of general purpose LLMs aren't exactly speed demons. Give me a sub-second Kagi search result I can curate on my own over a slow, parroted guess of an answer any day.
Fast and useful information search experiences are hard to implement. Plenty of organizations get search wrong and either spit back useless results to you or take forever to return something middlingly useful.
Relying on your good graces, once again, I'll let the Mellisearch [GH] folks tell you why you should let them attract you to their web 🕸️:
Meilisearch is a RESTful search API. It aims to be a ready-to-go solution for everyone who wants a fast and relevant search experience for their end-users ⚡️🔎
Efficient search engines often require a significant investment of resources. They are only accessible to companies with the means necessary to develop a bespoke search solution that fits their needs.
Small-to-medium-sized businesses commonly resort to subpar search engines that incur invisible costs on their user experience and retention due to poor search fulfillment.
That's why we created Meilisearch: An open source solution accessible to everyone, designed to meet a vast majority of needs. Requiring very little configuration to be installed, yet highly customizable.
Our solution delivers an instant search experience including typo handling, filters, custom rankings, and many more features.
While speed is their selling point, my initial poke at using Mellisearch (albeit in a toy project) found that they really do grok what developers want. This includes solid documentation, and scads of associated repos to browse that offer everything from a Rust library to a pretty nice way to scrape content and shove it into Mellisearch.
I have an idea for a pretty focused side project this year (something I haven't really attempted heartily before), and I believe I will be leaning heavily on Mellisearch for the ⚡️ search component.
FIN
Since I (albeit clumsily) slid a Spider-Man theme into this edition, I'll leave you with news of an upcoming Spider-Man Noir live-action series we can all (hopefully) look forward to. ☮
#NeedForSpeed