BlockHound
lucene-grep
Our great sponsors
BlockHound | lucene-grep | |
---|---|---|
6 | 9 | |
1,297 | 187 | |
1.3% | - | |
7.4 | 5.2 | |
6 days ago | 7 months ago | |
Java | Clojure | |
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.
BlockHound
- Is there a good way to monitor code for blocking operations?
-
Reactive Backend Applications with Spring Boot, Kotlin and Coroutines (Part 1)
There is a great tool called Blockhound we can use to detect if/when we have a blocking call in our application. This way, we can ensure that we don't break the non-blocking nature of our application by mistake while developing new features. Setting it up is fairly straightforward.
- Using Java's Project Loom to build more reliable distributed systems
-
3 Reasons Why All Java Developers Should Consider Quarkus
There's even a test library to detect them: https://github.com/reactor/BlockHound
-
BlockHound: how it works
One of the talks in my current portfolio is Migrating from Imperative to Reactive. The talk is based on a demo migrating from Spring WebMVC to Spring WebFlux in a step-by-step approach. One of the steps involves installing BlockHound: it allows to check whether a blocking call occurs in a thread it shouldn't happen and throws an exception at runtime when it happens.
-
Kicking Spring Native's tires
The first step is to make the application compatible with GraalVM. We need to remove Blockhound from the code. Blockhound allows verifying that no blocking code runs in unwanted places. It's a Java agent that requires a JDK, not a JRE. It's great for a demo, but it has nothing to do with a production application.
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.
- lucene-grep - grep-like utility based on Lucene Monitor compiled with GraalVM native-image
-
Lmgrep: Lucene-based grep-like utility
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!
- Lmgrep
What are some alternatives?
spring-native - Spring Native is now superseded by Spring Boot 3 official native support
ArchiveBox - 🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more...
imperative-to-reactive - Shows how to migrate from a Imperative Programming model to a Reactive Programming model step-by-step, while keeping caching
ali-dbhub - 已迁移新仓库,此版本将不再维护
reactive-kotlin-weather-api
babashka - Native, fast starting Clojure interpreter for scripting
agroal - The natural database connection pool
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.
reactor-core - Non-Blocking Reactive Foundation for the JVM
coyote - Coyote is a library and tool for testing concurrent C# code and deterministically reproducing bugs.
Flyway - Flyway by Redgate • Database Migrations Made Easy.
cs - command line codespelunker or code search