photon
Quicksilver
Our great sponsors
photon | Quicksilver | |
---|---|---|
6 | 16 | |
2,472 | 2,701 | |
- | 0.6% | |
6.7 | 7.4 | |
15 days ago | 14 days ago | |
Rust | Objective-C | |
Apache License 2.0 | Apache License 2.0 |
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.
photon
-
Show HN: OS Image processing API running on edge functions using Rust and WASM
Image processing/transformations with built-in CDNs is one of the more common solutions you would find out there but can get pretty expensive and locked in over time.
Vercel is a good example that provides a built-in “next/image” solution for the NextJS framework that optimises images for better performance, however, it gets very expensive as you scale.
Alternatively, running your own service with one of the most common image processing libraries like SharpJS is great but can get pretty difficult to run in a serverless environment with CDNs and all the other bells and whistles alongside all your other code while the cold startup time of Sharp in a serverless environment can be pretty brutal.
With all the growth around rebuilding engines in Rust for performance gains, I thought there must be an image processing library written in Rust which could be compiled to WebAssembly (WASM) and run way faster. That’s when I discovered Photon https://github.com/silvia-odwyer/photon by Silvia, who has done amazing work with the library.
This eventually led me to discover https://github.com/fineshopdesign/cf-wasm/tree/main/packages... that has already transcribed the Photon package into a WASM binary for easy use in edge v8 environments like Cloudflare workers or NextJS Edge functions.
Using these packages I built an API layer on the NextJS framework allowing you to easily process local and remote images at blazing fast speeds with a bunch of helper functions making it similar to use as most paid Image processing APIs. If hosted on Vercel, you can make use of the built-in CDN cache for files less than 10 MB at no extra charge with Edge caching.
Some of the features:
- Blazing fast image processing
- Fully serverless, runs on Vercel Edge functions
- Resize, crop, compress, tint, rotate, format and more
- Global distribution with Edge functions
- Automated CDN cache with Edge functions
- Replacement for `next/image` processing on Vercel
- Local and remote image processing
Some problems:
- The Photon lib has last been updated in 2020
- There are still a few obvious bugs when using it for more advanced requirements like 8k image processing on edge function due to poor memory management in Rust
- No sexy features right now like AI image optimisation and selective background blurring
- If you are looking for an all-in-one solution with Image Storage + image processing/CDN, this is not it (something we will be releasing soon on JigsawStack.com)
I think the Photon library and the API have a lot more potential for growth and will be hoping for more contributions from the community as Rust gets more popular!
-
Building an online image compressor
My first implementation was based on photon_rs, a Rust based web assembly library for image processing. It worked pretty well, but it was slower than OP website. Without digging much it seems logical since photon isn’t optimized for performance.
- Rust/WebAssembly image processing library
-
Image Compression Library
What you describe reminded me of photon. Check out the website. If there isn't an overlap of functionality then you can definitely integrate it into your own site.
- Off my chest: When are some of you browser devs gonna give us native image scaling? This is the best we got ATM.
-
Monitoring UX in Single Page Applications
For the image, you are able to either use your webcam to take a photo, or upload a photo of your own before moving onto the filters. Image filtering is included in most image manipulation libraries. I had used ImageMagick before, but had a terrible time with it. I wanted to find a better way to do Instagram-like filtering. I came across Photon, a high performance image processing library written in Rust and can be compiled to WebAssembly, and there was already a React demo so it was easy to integrate. Once you choose the filter you want, you move onto the decoration stage.
Quicksilver
-
The Largest Money-Printing Element Ever Made
Pretty sure it was Nicholas Jitkoff[1] and his team. He had done Quicksilver[2] a few years back which popularized this single input interface for osx desktop.
-
Should I worry about using Raycast on MacOS?
There are these open source alternatives, I haven’t checked their privacy policies or their code Maybe try and report back? https://www.cerebroapp.com https://qsapp.com https://ueli.app https://github.com/ParthJadhav/Verve
-
Keyboard tricks from a macOS app dev
I've used Quicksilver for clipboard history historically. There is a currently a bug that I've been meaning to delve into: https://github.com/quicksilver/Quicksilver/issues/2913 but still generally usable. Particularly handy combined with adding simple AppleScript or JXA actions to manipulate the content (I have several simple ones for example to run a regex, to clean extraneous content around a number, a phone number, strip whitespace, indent 4 spaces for pasting into a markdown codeblock on SO, etc etc).
The Shelf plug-in also very handy along similar lines.
-
The best Mac Apps to unlock your max potential (recommended by users of r/MacOs )
Should add Quicksilver. It's the first app I install on my Macs
-
Boomer Wants to Learn Mac
Spotlight-esque apps for enhanced keyboard driven productivity (pick one): Raycast Alfred Quicksilver
-
Why is Spotlight garbage these days?
Quicksilver
-
Resolving the Great Undo-Redo Quandary
For a browsable clipboard history on macOS, I recommend LaunchBar (https://www.obdev.at/products/launchbar/; docs at https://www.obdev.at/resources/launchbar/help/ClipboardHisto...). I used to use the Clipboard Plugin of the free and open source app Quicksilver (https://qsapp.com/), which worked fine but was slightly less streamlined. Some people prefer Alfred (https://www.alfredapp.com/help/features/clipboard/).
-
Shortcat – Manipulate macOS masterfully, minus the mouse
This is great. Reminds me of QuickSilver[1]. I'm evaluating HomeRow[2] for a VIM driving the Mac OS, will try this as well.
I love how:
a. accessibility features are making the OS more accessible for everyone through automation
b. good the accessibility implementation is on the Mac that most applications are inherently compatible with solutions like this.
[1]: https://qsapp.com/
-
Sol: Open-source Alfred/Raycast alternative for macOS
Good to see something like this, don't forget there is already an open source alternative (pre-existing) for Alfred and Raycast. It's called Quicksilver - https://qsapp.com
-
Albert – open-source keyboard launcher for Linux
Kupfer (gnome) - https://kupferlauncher.github.io
Quicksilver (macos): https://qsapp.com/
I still find myself using these and enjoy the 'wei wu wei' flow of them: https://m.youtube.com/watch?v=d4LkTstvUL4 (skip to 5 or 11 minutes in)
What are some alternatives?
image - Encoding and decoding images in Rust
hammerspoon - Staggeringly powerful macOS desktop automation with Lua
InputBot - Rust library for creating global hotkeys, and simulating inputs
alfred-shortcuts
Kubewarden - Kubewarden is a policy engine for Kubernetes. It helps with keeping your Kubernetes clusters secure and compliant. Kubewarden policies can be written using regular programming languages or Domain Specific Languages (DSL) sugh as Rego. Policies are compiled into WebAssembly modules that are then distributed using traditional container registries.
company-mode - Modular in-buffer completion framework for Emacs
jpegoptim - jpegoptim - utility to optimize/compress JPEG files
sol - MacOS launcher & command palette
menyoki - Screen{shot,cast} and perform ImageOps on the command line 🌱 🏞️
KE-complex_modifications - Karabiner-Elements complex_modifications rules
purrybooth - v cute photo booth
murex - A smarter shell and scripting environment with advanced features designed for usability, safety and productivity (eg smarter DevOps tooling)