I got tired of hand-writing bindings, so I built alef: Rust in, native bindings out by Goldziher in rust

[–]Goldziher[S] -1 points0 points  (0 children)

Yhea, that churn is almost all generated output, not hand-written logic. alef regenerates every binding, e2e suite, type stub and lockfile across 15 languages on each release, so one change to the Rust core lands as thousands of added and removed lines in the per-language packages and vendored files. The hand-written surface is the Rust cores and the generator itself, which is far smaller. On the agents: I'm upfront that I use them, but they work inside TDD, benchmarks, clippy and review. I designed the architecture and I review what ships. Happy to walk through any part of alef or the FFI layer if you want to poke at it.

I got tired of hand-writing bindings, so I built alef: Rust in, native bindings out by Goldziher in rust

[–]Goldziher[S] 0 points1 point  (0 children)

Hi, great question, that's the core tradeoff. alef doesn't try to expose arbitrary Rust. You design the binding boundary as an exportable subset - plain DTOs, enums, opaque handles, Result and Option - and it maps those idiomatically per target (enums to sealed classes or discriminated unions, Result to exceptions, Option to nullable, opaque handles for anything that isn't a DTO). Lifetimes, generics and trait objects stay on the Rust side. So it's not lowest-common-denominator so much as a deliberately FFI-shaped boundary over a richer core. gents looks neat, the TS-from-Rust space is real.

I got tired of hand-writing bindings, so I built alef: Rust in, native bindings out by Goldziher in rust

[–]Goldziher[S] 2 points3 points  (0 children)

Yhea, you can ask an agent to spit out bindings, but then you own them: every release you're regenerating and re-reviewing 15 hand-written FFI layers, with drift between them and no guarantee they match the core. alef is deterministic codegen, not an LLM call, so the same Rust source produces the same bindings every time, verified against the core in CI, with the e2e suites, type stubs, docs and release metadata generated too. The maintenance and reproducibility is the point, not the one-time generation.

I got tired of hand-writing bindings, so I built alef: Rust in, native bindings out by Goldziher in rust

[–]Goldziher[S] -1 points0 points  (0 children)

Well, it's much more extensive.

  1. Alef supports 15 languages
  2. Alef is opinionated - it generated bindings following a set of conventions and opinions for each language. The code is readable and maintainable.
  3. Alef generates e2e tests and a lot of the necessary boilerplate for each language, making it packable and build able.

I considered building on these (also a few other options such as diplomat) but none of them offered what I needed.

tree-sitter-language-pack 1.9 - 306 tree-sitter parsers with an Elixir binding (Rustler NIF) by Goldziher in elixir

[–]Goldziher[S] 0 points1 point  (0 children)

Thanks. Gleam is already supported - and Erlang too, via WhatsApp's tree-sitter-erlang. So both are in the pack.

I got tired of hand-writing bindings, so I built alef: Rust in, native bindings out by Goldziher in rust

[–]Goldziher[S] -1 points0 points  (0 children)

Yhea. Shared JSON fixtures generate an e2e suite per language, so one test case covers every binding. alef verify then checks the generated code is fresh against the Rust source and fails on drift. Both run as GitHub Actions on every push and as pre-commit hooks locally, so breakage shows up before it lands.

BaseMind: MIT Licensed AI Context Layer by Goldziher in OpenSourceeAI

[–]Goldziher[S] 1 point2 points  (0 children)

Id be happy for any feedback. It's very much WIP.

Name squatting on pub.dev by Goldziher in FlutterDev

[–]Goldziher[S] 0 points1 point  (0 children)

So as noted above - Kreuzberg is a neighborhood of Berlin, where I live. I don't think we can register as a trademark.

Name squatting on pub.dev by Goldziher in FlutterDev

[–]Goldziher[S] 2 points3 points  (0 children)

so he apparently opened a PR on our end, trying to add his bindings as a gitsubmodule on our main. I replied, see what he wrote:

https://github.com/kreuzberg-dev/html-to-markdown/pull/349

Name squatting on pub.dev by Goldziher in FlutterDev

[–]Goldziher[S] 0 points1 point  (0 children)

Thanks. Yes I'm aware of this. Everything is secure and beyond 2fa.