HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
akavel
dali
Nim2019–2023
akavel / dali

dali

Indie assembler/linker for Dalvik VM .dex & .apk files (Work In Progress)

2Distinct people
4Mentions
0Explicit recommenders
79GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Indie assembler/linker for Dalvik VM .dex & .apk files (Work In Progress)

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year4 dated mentions

Observed mentions: 2019-05-28 07:44:54 UTC to 2023-08-29 09:14:03 UTC.

0122019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101

What Hacker News says

4 sources
Tangentially related, I've written a barebones assembler for Android .apk files once (strictly speaking, the assembler is for .dex files, but it also comes with a set of tools to package and sign .apk files). It showed up to be surprisingly easy. I expected to stumble upon some blocker issue any time that would make it impossible for me to continue — but one just never materialized! It's written mainly in Nim and provides enough primitives to allow creating Java "stubs" for native .so libraries, so that .apk-s can be built in Nim WITHOUT JDK AT ALL. The Android NDK is still kinda needed/useful, though IIRC mainly for access to adb, and especially adb logcat (which you'll need A LOT for debugging if you try to use this contraption). I'd love to One Day™ Rewrite It In Rust, so that we could write .apk-s purely using the Rust toolchain, just
Read the rest
using a JNI library as appropriate, sprinkling the code with some proc-macro annotations where needed by the assembler (for stubs), and possibly adding some lines in a build.rs (for .apk packaging). The .dex assembler itself is at: https://github.com/akavel/dali — you may like to check out the tests at: https://github.com/akavel/dali/tree/master/tests to see how using it looks like. An example project with a simple .apk written purely in Nim (NO JDK) is at: https://github.com/akavel/hellomello/tree/flappy (unfortunately, given Nim's poor packaging story, it's most probably already bitrotten to the extent that it can't be quickly and easily built & used out of the box). I recorded a presentation about this for an online Nim conference — see: https://www.youtube.com/watch?v=wr9X5NCwPlI&list=PLxLdEZg8DR...
In Compiling Rust for .NET, using only tea and stubbornness
https://github.com/akavel/dali was one (a fully hand-written non-Java, non-JVM assembler for Android .apk files); I managed to write a rudimentary flappy-bird-like prototype in it and did a presentation about the project: https://www.youtube.com/watch?v=wr9X5NCwPlI&list=PLxLdEZg8DR... but it's on a shelf now, didn't get much attention, and I don't feel bad about that. Had some roadblocks, but managed to overcome them, and I'm honestly surprised how the core effort was basically easy to implement and how the formats were open and relatively simple. (The main real issues I had were that debugging via adb logs was tiresome when something was not working.) What was funny about this project was that I started it with basically a thought of: "there will be probably some annoying roadblock at some point that will make it unviable to continue; I
Read the rest
accept that and will be ok with stopping once I stumble upon it; but I don't see one clearly from the start [I did some quick initial research how the formats & the bytecode look and they seemed rather simple], and I'm really curious how far I can get if I decide to not think about this possible roadblock". Turns out I was able to get all the way to the end :D
In Ask HN: What is your “I don't care if this succeeds” project?
Came here to mention nim that I've followed with great interest. As it compiles to C you can probably use it just about everywhere. As far as android support this guy is working on adding support to android via Dalvik assembly. The usual approach to get nim to work with android would be JNI but that might cause problems for example with x86 android machines if I am not mistaken. https://github.com/akavel/dali
In Ask HN: Best language to share code between an Android and iOS app?
As mentioned in other comments, maybe worth to note that it's an assembler in a library form, i.e. without code for a parser. But then, looking at it in another way, it's a clever reuse of the C compiler's parser! Now, in a something of a "shameless plug", incidentally I took a very similar approach[1] recently, going for a "library form" too when writing an experimental assembler for Dalvik (i.e. Android VM) bytecode. Not having to write a parser helped me to iterate/prototype/hack faster! [1]: https://github.com/akavel/dali/blob/d79cec81293abc5f3a87f4d8...
In An x86 Assembler in 256 LOC (2017)

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.