7 comments

  • wooptoo 54 minutes ago
    A comment on libxml, not on your work: Funny how so many companies use this library in production and not one steps in to maintain this project and patch the issues. What a sad state of affairs we are in.
    • jawiggins 34 minutes ago
      Yeah I agree, maintaining OS projects has been a weird thing for a long time.

      I know a few companies have programs where engineers can designate specific projects as important and give them funds. But it doesn't happen enough to support all the projects that currently need work, maybe AI coding tools will lower the cost of maintenance enough to improve this.

      I do think there are two possible approaches that policy makers could consider.

      1) There could probably be tax credits or deductions for SWEs who 'volunteer' their time to work on these projects.

      2) Many governments have tried to create cyber reserve corps, I bet they could designate people as maintainers of key projects that they rely on to maintain both the projects as well as people skilled with the tools that they deem important.

    • black_13 53 minutes ago
      [dead]
  • alexhans 32 minutes ago
    > I do think there is something interesting to think about here in how coding agents like Claude Code can quickly iterate given a test suite.

    This is a point I've tried to advocate for a while. Specially to empower non coders and make them see that we CAN approach automation with control.

    Some aspects will be the classic unit or integration tests for validation. Others, will be AI Evals [1] which to me could be the common language for product design for different families/disciplines who don't quite understand how to collaborate with each other.

    The amount of progress in a short time is amazing to see.

    - [1] https://ai-evals.io/

  • kburman 1 hour ago
    Amazing work! I'd love to hear more details about your workflow with Claude Code.

    As a side note and this isn't a knock on your project specifically. I think the community needs to normalize disclaimers for "vibe-coded" packages. Consumers really need to understand the potential risks of relying on agent-generated code upfront.

    • jawiggins 30 minutes ago
      Yeah its a fair point. I wondered if it might be irresponsible to publish the package because it was made this way, but I suspect I'm not the first person to try and develop a package with Claude Code, so I think the best I can do is be honest about it.

      As for the workflow, I think the best advice I can give is to setup as many guardrails and tools as possible, so Claude and do as many iterations before needing any intervention. So in this case I setup pre-commit hooks for linting and formatting, gave it access to the full testing suite, and let it rip. The majority of the work was done in a single thinking loop that lasted ~3 hours where Claude was able to run the tests, see what failed, and iterate until they all passed. From there, there was still lots of iterations to add features, clean up, test, and improve performance - but allowing Claude to iterate quickly on it's own without my involvement was crucial.

  • blegge 1 hour ago
    > arena-based tree with zero unsafe in the public API

    Why "in the public API"? Does this imply it's using unsafe behind the hood? If so, what for?

    • DetroitThrow 48 minutes ago
      Yeah I'm a bit confused because you can have an entirely unsafe code base with just the public interface marked as safe. No unsafe in the interface isn't a measure of safety at all.
      • mirashii 37 minutes ago
        It is a measure of the intended level of care that the users of your interface have to take. If there's no unsafe in the interface, then that implies that the library has only provided safe interfaces, even if it uses unsafe internally, and that the interface exposed enforces all necessary invariants.

        It is absolutely a useful distinction on whether your users need to deal with unsafe themselves or not.

  • nicoburns 1 hour ago
    How does it compare to the original in terms of source code size (number of lines of code?)
    • jawiggins 23 minutes ago
      It's significantly smaller. Because Rust doesn't require header files or memory management, xmloxide is ~40k lines while libxml2 is ~150k lines.
  • fourthark 1 hour ago
    Does it fix the security flaws that caused the original project to be shut down?
    • jawiggins 15 minutes ago
      Because it was written in C, libxml2's CVE history has been dominated by use-after-free, buffer overflows, double frees, and type confusion. xmloxide is written in pure Rust, so these entire vulnerability classes are eliminated at compile time.
    • blegge 1 hour ago
      https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd...

      Doesn't seem to have shut down or even be unmaintained. Perhaps it was briefly, and has now been resurrected?

    • notpushkin 1 hour ago
      If by flaws you mean the security researchers spamming libxml2 with low effort stuff demanding a CVE for each one so they can brag about it – no, I don’t think anybody can fix that.
      • bawolff 22 minutes ago
        Based on context, i kind of imagine they are more thinking of the issues surounding libxslt.
  • man4 1 hour ago
    [dead]