Hongyu Yang
yyhh.org · Personal blog · on HN since 2021
Hongyu Yang, developer of the Datalevin database, writes about Clojure, GraalVM, triplestores, query performance and search engines.
What HN saysHN commenters recommend it for its Datalevin triplestore post and for discussion of performance and Java foreign function interface.
15HN people shared it
3linked it in comments
17stories submitted
361story points
3 months agolast shared
2021people per year2026
Most-shared posts
- 1Writing C code in Java/Clojure: GraalVM specific programming (2021)5 people · 60 points · first shared 2021 · 2 comments on HN
- 2SQLite in Production? Not So Fast for Complex Queries5 people · 7 points · first shared 2026 · 1 comments on HN
- 3Competing for the JOB with a Triplestore3 people · 25 points · first shared 2024 · 1 comments on HN
- 4T-Wand: beating Lucene in less than 600 lines of code2 people · 148 points · first shared 2021 · 88 comments on HN
- 5How much can a Clojure developer do alone?2 people · 116 points · first shared 2021 · 102 comments on HN
- 6AI Coding Has Erased the Supposed Advantage of Statically Typed Languages1 people · 4 points · first shared 2026 · discussion on HN
- 7Triple Store, Triple Progress: Datalevin Posited for the Future1 people · 1 points · first shared 2026 · discussion on HN
- 8Homepage1 people · first shared 2026
What HN people wrote when they linked it
huahaiy · 2026-01-14
https://yyhh.org
geokon · 2024-09-25
Relevant blog I found interesting: (Datalevin)
https://yyhh.org/blog/2024/09/competing-for-the-job-with-a-triplestore…
From the perspective of someone not familiar with the topic. And I touches on performance
the-alchemist · 2024-05-09
Java's FFI is currently a very low-level. As the article points you, you don't actually have to do this: the jextract tool will generate the bindings for you from header files.
I'm sure someone will come along and write annotations to do exactly as you describe there. The Java language folks tend to be very conservative about putting stuff in the official API, cuz they know it'll have to stay there for 30+ years. They prefer to let the community write something like annotations over low-level APIs.
Anyway, the GraalVM folks don't have quite the same limitations as Java, so they have annotations already (https://yyhh.org/blog/2021/02/writing-c-code-in-javaclojure-graalvm-sp…
@CStruct("MDB_val") public interface MDB_val extends PointerBase { @CField("mv_size") long get_mv_size(); @CField("mv_size") void set_mv_size(long value); @CField("mv_data") VoidPointer get_mv_data(); @CField("mv_data") void set_mv_data(VoidPointer value); }