All file sizes are pre-compression. All files that come from files.stork-search.net are gzipped; you should compress your search index before serving it.
|Version||stork.wasm size||stork.js size||federalist.st size||Search duration*||Build duration*|
|1.5.0||350.44 KB||23.12 KB||1.125 MB||1.92 ms.||230.06 ms.|
|1.4.2||354.76 KB||21.88 KB||1.125 MB||1.96 ms.||233.54 ms.|
|1.4.1||354.76 KB||21.88 KB||1.125 MB||1.97 ms.||244.69 ms.|
|1.4.0||316.39 KB||21.88 KB||1.125 MB||2.28 ms.||162.77 ms.|
Benchmarks run on an AWS EC2 t4.medium instance running Ubuntu 20.04, initiated from the
- Timestamp formatting for SRT files is now functional, and the documentation, which previously referenced unimplemented features, is now accurate. (Thanks for the bug report, @selamhabibi!)
xSVG is now horizontally centered within the button. (Thanks @kkwteh!)
- Internal dependency updates (Thanks @dependabot!)
I'm still hard at work on 2.0.0! The new version's key feature will be sharded search indexes, but implementing this has meant that I rethink the data format of the serialized index to support loading single chunks at a time while keeping the search interface snappy. Maintaining Stork's speed and resource size while redesigning the data format has proven difficult.
In personal news, I got engaged to be married over the holidays, which while exciting, has meant I have less time to work on Stork than I hoped. I'm still around and looking at the repo every day (despite the slowed progress of releases) and hope to get a 2.0.0 RC into your hands before the end of March.
The RC will be published to Github for all to try, but please let me know if you are particularly interested in poking at it! I'm happy to help walk anyone through the changes.
transformResultUrl, which, when set, transforms search result URLs from what's described in the search index to what gets output in the DOM. (Thanks, @ArsenArsen!)
output.excerpts_per_resultto 0 in your configuration file will now enable index serialization optimizations that can reduce your index filesize by 20-50%. Note that this will make all excerpts disappear from the search UI.
- Fixes a bug where multiple instances of the element described in the
exclude_html_selectorconfiguration option were not being correctly excluded. (Thanks, @ezekg!)
- Fixes a crash when trying to parse noncompliant Markdown contents (Thanks, @userJY!)
- Fixes a bug when highlighting search results where highlights wouldn't surround an entire word. (Thanks, @kdheepak!)
- Internal dependency updates
- Fixes a regression where the test server (
stork test) was inaccessible
- Fixes a regression where error messages weren't displayed if no files could successfully be indexed
- Themes now compensate for border radius when displaying progress bar (Thanks @jmooring!)
- Fixes a regression that prevented the Stork CLI from reading index configuration from stdin
- Fixes an architectural decision that prevented Stork from being published to crates.io
- Starting with 1.4.0, the JS, CSS, and WASM files at the root of the
files.stork-search.netCDN will no longer be updated. From this release going forward, you will need to change your
<link rel="stylesheet">tags to upgrade to a new version of Stork. See this Github announcement for more details.
- Configuration files can now be in JSON format, in addition to TOML format
- The web library now takes the number of occurrences in each file into account when ordering search results.
- CLI: The
--jsonflag for the
searchsubcommand is now deprecated, as it did nothing in previous versions of Stork.
- CLI: A new command line option for the
--format <VALUE>, now determines how search results will be displayed in the terminal. The default value is
json, which will display the search results in the JSON format understood by the browser module. A new value,
pretty, will format the search results in a readable, understandable way. In the 2.0.0 Stork release,
prettywill be the default value for this flag.
- Two new CSS themes,
edible-dark, have been added. See https://stork-search.net/themes for examples and instructions on how to integrate them into your project.
- Removes a stray
- Fixes a crash when the indexed contents contained words longer than 128 characters
--timingsflag previously did nothing. Now, when included with the
searchsubcommands, timing information will be displayed at the end of the terminal output via stderr.
- Document titles that were comprised of several words separated by hyphens would crash the search interface. This has been fixed.
titleattributes on HTML elements
- Adds configuration keys to set an HTML selector as excluded from indexing
- Adds a configuration key,
output.save_nearest_html_id, that, when set to true, will index the nearest HTML IDs for each word. The web interface will link to that ID; clicking on that search result will jump to the text's location on the page.
- Reduces JS and WASM artifact sizes by changing build system settings
- Updates CSS themes, and adds a new theme:
- Fixes a bug where users were able to accidentally download two instances of Stork's WASM on the page (Thanks @justinmayer!)
- Fixes a bug where the indexer was hanging in environments where stdin was not passed in as an empty stream (Thanks @Aethon!)
- Updates dependencies
- Fixes issue where [x] button in Basic or Dark themes wouldn't respond to the resizing of the
- Fixes issue where searching for three characters wouldn't display results on the web page (#172)
- Fixes crash when the title of a document included non-unicode characters (#173 - thanks @Erwan-le-Gall!)
- Stork can now index content from the web. (When the docs are available, a link to the docs will be here!) #146
- Stork's command line interface has been redesigned and rewritten, with backwards-compatible shims added where needed. #160
- This change deprecates the
filenamekey in the output configuration.
- This change deprecates the
Quality of Life Improvements
- If you index a file and get an empty buffer, Stork will let you know there might be a problem. #147
- Adds debug method to JS interface #161
- Improves command line output, especially for errors #160
- Adds a new
break_on_file_errorconfiguration option to stop indexing when first file fails, rather than continuing without the erroring file. #160
- Added self-hosting support. Read the self-hosting documentation to learn more.
onResultsHidden- Callback that gets called when the results are hidden, when the user presses esc or clicks on the close button
onInputCleared- Callback that gets called when the input is cleared, when the user presses esc twice
showCloseButton- Boolean to determine whether the close button is visible or not
- Stork can now take in a configuration file that's piped into the
$ stork --buildcommand, instead of requiring that you pass in a file path.
html_selectoroption in the configuration file wasn't being parsed correctly, leading to the feature seemingly not working
- Better error message when there are no valid files
- Hyphens are now treated the same as spaces for indexing and searching purposes. In effect, you can now search for
avonand it will match the term
Stratford-upon-Avonin your index.
- Stork used to fail the entire indexing process if there was an error parsing a single file. Now, it will collect those errors and present them in the console, but still build an entire index with the remaining files.
- Fix highlight offsets when excerpt contains multi-byte characters. Requires that you re-build your index. (Thanks for reporting, @DanilaFe!)
- Describe which HTML selector cannot be found when an HTML document fails to index.
- Collect and display indexing errors instead of failing early (Thanks for suggesting, @fauno!)
- Some browsers wouldn't display results properly if you started typing before the WASM file had loaded (thanks, @reese!)
- The indexer wouldn't index words past a certain point if the document contained non-word space-delimited tokens. For example, if your document had the contents
hello - world, the word
worldwouldn't be indexed. (Thanks for reporting, @DanilaFe!)
- Fix a webpack bug that was only encountered on first install
Thanks for using Stork!
Stork 1.0.0 is here, with new features, stability improvements, and lots more speed. The major version bump signifies that Stork is officially out of beta, and that I (James, the developer) believe that it can be "production ready" on your site.
Index Generator Updates:
- Stork can parse HTML and Markdown input files
stork --testcommand will open a local webserver that lets you test a generated index, without having to build it
- Sped up index generation (Thanks @DenialAdams!)
- Separated index parsing from searching in generated WASM library, which sped up searches (Thanks @DenialAdams!)
- Reworked public interface for those using Stork as a Rust library
- Added dark.css theme
- New website documentation
Fixes a bug (#69) in which content wasn't being indexed after an all-punctuation word. Make sure to rebuild your index to see the effects of this fix.
Automatic CSS Improvements:
- Site styles were overriding Stork's Basic theme. The stylesheet has been updated to be more specific.
- Ubuntu build artifact uploaded to the Github release for easy
wget-ing during your static site's build process
cargo install, the downloaded binary was named
stork. This has been fixed.
Automatic JS improvements
- Start using Typescript (this accounts for the ballooning in JS filesize)
- You can now use the keyboard to interact with the search results! Up and down arrows to navigate, enter to select a result, and esc to hide the list of results
Rebuild your index to get:
- SRT Subtitle support
- Customizable stemming language
- Content in titles is now indexed and prioritized in search results
- Better error messages if search crashes, which it shouldn't.
Automatic JS improvements
Update the binary for:
- Improved UX if you provide deprecated configuration fields
- Improved console output if you run
- New site infrastructure
- WASM: Deprioritizes stop words in search results
- WASM: Searches for words with the same stem as the query
- WASM: Improves error messaging for corrupt indexes
- Indexer: Adds knowledge of word stems to index