lightpanda-io / lightpanda-io/browser

WebIDL parser and checker

Open
#29 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

DOM API HTML Parser Investigate
Dominant language
Zig
Stars
35.5k
Forks
1.7k
Avg merge
21h 13m
Merged PRs (30d)
262

Description

On pourrait utiliser WebIDL afin de s’assurer:

  • que l’ensemble des méthodes du standard DOM sont implémentées
  • que la signature de ces méthodes est conforme

Tous les navigateurs modernes se basent sur WebIDL et plusieurs parsers existent déjà, souvent en Python.

L’idée serait pour chaque fichier WebIDL présent de:

  • parser le fichier
  • vérifier si une implémentation zig existe et si toutes les propriétés (getter/setter) et méthodes sont présentes et ont la signature conforme au standard
  • si ce n’est pas le cas générer une erreur avec les signatures attendues

Ce parsing pourrait se faire comptime.

Je le vois à la fois comme un outil de conformité et comme un outil de développement des Web APIs puisque pour chaque nouvel API le dev workflow pourrait commencer par ajouter le fichier WebIDL correspondant et ainsi générer la structure de l’implémentation (toutes les fonctions et leurs signatures).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the WebIDL specification and survey the existing WebIDL parsers mentioned in the issue. Then map the repository's WebIDL files and Zig Web API implementations to define the parser, conformance checks, error reporting, and possible comptime workflow. Done means the scope and design are settled for detecting missing or mismatched properties and methods.

Written by the indexing model from the issue text.

Assessment

Tech stack
zig
Domain
compilers, tooling, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.