nandi/frqpublic Fork 0
56551a8157331acb8601841b63f2dc7424339722
Commits
Clone
git clone https://git.rickub.com/nandi/frq.git
git clone ssh://git@rickub.com/nandi/frq.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

README.md · 27 lines · 1.2 KBmarkdown Blame HistoryRaw
The binding is Dart, and it works f7aea3b nandi 21h ago1# The Dart side
2
3Packages that are Dart rather than ClojureDart, and are not Flutter.
4
5## Why this is a separate tree
6
7`frq_core` is the binding to the Nim core in `nim/`. It is `dart:ffi` and
8`dart:convert` and nothing else, and keeping it out of `flutter/` buys two
9things:
10
11* **It tests on the plain Dart VM.** `flutter/pubspec.yaml` depends on the
12 Flutter SDK, so `dart pub get` cannot resolve it at all — anything living
13 there needs a Flutter toolchain to run one assertion about a string. This
14 package resolves and tests in a second. `just dart-test`.
15* **It says which way the dependency goes.** The Flutter app depends on this
16 by path. Nothing here may depend on Flutter, and if that ever becomes
17 tempting the thing being written belongs on the other side of the line.
18
19## Why Dart and not ClojureDart
20
21The Nim core exists to have less Clojure in the tree. Writing its binding in
22ClojureDart would have added some — and would have meant fighting generic
23interop for a file that is pure marshalling, since `lookupFunction` takes two
24type arguments. In Dart it is a typedef.
25
26So the shape the migration moves toward: Nim owns the rules, Dart owns the
27platform, and ClojureDart shrinks from both ends.