coyote
lucene-grep
Our great sponsors
- InfluxDB - Collect and Analyze Billions of Data Points in Real Time
- Onboard AI - Learn any GitHub repo in 59 seconds
- SaaSHub - Software Alternatives and Reviews
coyote | lucene-grep | |
---|---|---|
11 | 9 | |
1,380 | 188 | |
0.7% | - | |
6.1 | 0.0 | |
3 months ago | 2 months ago | |
C# | Clojure | |
GNU General Public License v3.0 or later | 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.
coyote
-
Implementing a distributed key-value store on top of implementing Raft in Go
Microsoft has a library/tool called Coyote* that helps with testing distributed systems; you can write tests/specifications, Coyote will systematically explore nondeterminism in your system and check if your tests still pass. If there's a failure, it'll show the sequence of events that led to the failing test.
I started a project to implement Raft with a KV-store on top, similar to the article, meaning to use Coyote to test it; I didn't get that far before losing interest, though. It's reassuring to read that it took Phil several months to write the code in the post, it's good to know that this is a decidedly nontrivial problem.
-
What's the best way to test parallel jobs?
Something like coyote by MS?
-
Using Java's Project Loom to build more reliable distributed systems
If you're looking for similar concurrency testing in the dotnet world, checkout Coyote:
https://microsoft.github.io/coyote/
https://innovation.microsoft.com/en-us/exploring-project-coy...
- Coyote: .NET library tool help ensure that your code is free of concurrency bugs
-
TLA+ Graph Explorer
Visualizations do help a lot when model checkers and concurrency schedule exploration tools like Coyote find bugs. Coyote include the ability to visualize the traces if you express your concurrency using actors (see https://microsoft.github.io/coyote/#concepts/actors/state-ma...)
It also allows you to implement your own "logger" through which you can emit enough information to construct some cool visualizations. I had a lot of fun working on visualizing an implementation of Paxos using Coyote (then P#) (screenshot at https://ibb.co/TTk2hYb)
-
Finding threading issues in code quickly
The closest I can think of is https://github.com/microsoft/coyote
lucene-grep
- FLaNK Stack Weekly for 20 June 2023
-
Using Java's Project Loom to build more reliable distributed systems
- Graal native images are real. These boast a far lower startup overhead and much lower steady state memory usage for simpler applications.
Probably my counterexample of choice is this: https://github.com/dainiusjocas/lucene-grep - it uses Lucene, probably the best search library (core of Elasticsearch, Solr, most websites), which is notoriously not simple code to implement grep-like functionality. In simple cases, they demonstrate a 30ms whole process runtime with no more than 32MB of RAM used (which looks suspiciously like a default).
The JVM is fast becoming a bit like Postgres... one of those 'second best at everything' pieces of tech.
-
Lmgrep: Lucene-based grep-like utility
Author of lmgrep here. Could you create an issue for Finnish text analysis? https://github.com/dainiusjocas/lucene-grep/issues
I'd take look.
Here goes: https://github.com/dainiusjocas/lucene-grep/issues/84
I realize some relatively obscure Finnish stemmer and Lucene with GraalVM aren't exactly a common use case. I did some testing and provided my use case. I certainly have much English language content to search with using lucene-grep. So, thank you for making it!
I had to do a second scan to find it: "[Give it a try]¹ and let me know how it goes."
Yes, it is there as an in-text link:
"Then the most complicated part was to prepare executable binaries for different operating systems. Plenty of CPU, RAM, VirtualBox with Windows and macOS virtual machines, and here we go."
https://github.com/dainiusjocas/lucene-grep/releases/tag/v20...
What are some alternatives?
Appccelerate - State Machine - A .net library that lets you build state machines (hierarchical, async with fluent definition syntax and reporting capabilities).
Automatonymous - A state machine library for .Net - 100% code - No doodleware
babashka - Native, fast starting Clojure interpreter for scripting
ArchiveBox - 🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more...
beagle - A smart, reliable, and highly customizable debug menu library for Android apps that supports screen recording, network activity logging, and many other useful features.
BlockHound - Java agent to detect blocking calls from non-blocking threads.
P - The P programming language.
loom - https://openjdk.org/projects/loom
cs - command line codespelunker or code search
ali-dbhub - 已迁移新仓库,此版本将不再维护
prompt-engineering - Tips and tricks for working with Large Language Models like OpenAI's GPT-4.