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

  1. 1
  2. 2
    SQLite in Production? Not So Fast for Complex Queries
    5 people · 7 points · first shared 2026 · 1 comments on HN
  3. 3
    Competing for the JOB with a Triplestore
    3 people · 25 points · first shared 2024 · 1 comments on HN
  4. 4
    T-Wand: beating Lucene in less than 600 lines of code
    2 people · 148 points · first shared 2021 · 88 comments on HN
  5. 5
    How much can a Clojure developer do alone?
    2 people · 116 points · first shared 2021 · 102 comments on HN
  6. 6
  7. 7
  8. 8
    Homepage
    1 people · first shared 2026

What HN people wrote when they linked it

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); }

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close