Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure we have issues on file for tracking utility crates for all Web platform features #41

Open
fitzgen opened this issue Mar 22, 2019 · 8 comments
Labels
good first issue Good for newcomers help wanted Extra attention is needed

Comments

@fitzgen
Copy link
Member

fitzgen commented Mar 22, 2019

Would be A++++ if someone went through https://platform.html5.org/ and made sure we had an associated tracking issue for each item there (where it makes sense). Lots of potential utility crates!

@fitzgen fitzgen added help wanted Extra attention is needed good first issue Good for newcomers labels Mar 22, 2019
@yoshuawuyts
Copy link
Collaborator

yoshuawuyts commented Mar 23, 2019

@fitzgen is there a good example of such an issue already that we could use as a template for filing these tracking issues? Might make it a bit easier to get people to take on parts of this ✨

@rylev
Copy link
Collaborator

rylev commented Mar 24, 2019

It seems like that the existing issues that fit in this category are quite simple: #6 (comment) Perhaps we should just create them, and more information can be added later.

@fitzgen
Copy link
Member Author

fitzgen commented Mar 25, 2019

We don't have a template yet, but creating one would be awesome!

I think most of this would be "mid-level" APIs at least initially, and the big questions to resolve with these crates are:

  • What would a direct Rust translation (e.g. a callback-based) API look like?
  • Does it make sense to add a Future- and/or Stream-based API on top of that?
  • Are there existing, cross-platform crates that are widely used in the ecosystem that we should consider integration with?

@derekdreery
Copy link
Contributor

I'm going to knock this work out now.

@derekdreery
Copy link
Contributor

derekdreery commented Jan 18, 2020

List generated by scraping platform.html5.org.

List of APIs.

Core platform

  • HTML
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • DOM
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • ECMAScript
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • WebAssembly
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • URL
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Fetch (includes CORS)
  • XMLHttpRequest
  • Encoding
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates

CSS features

  • CSS roadmap
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Animations
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Background-image options
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Border images
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Border radius (rounded corners)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Box shadows
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Box sizing
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Cascading and inheritance
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Colors
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Compositing and Blending
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Containment
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Device Adaptation
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Downloadable fonts (@font-face)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Exclusions
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Feature queries (@supports)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Filter Effects
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Fixed positioning (position:fixed)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Flexible box layout (Flexbox)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Font-feature settings
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Font loading
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Gradients
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Grid layout
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Hyphenation
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Image Values and Replaced Content
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Logical properties
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Masking
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Media Queries
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Motion paths
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Multiple-column layout
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Multiple backgrounds
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Opacity
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Overflow
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Pointer events
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Pseudo-elements
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Scroll Snap Points
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Selectors
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Shapes
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Sticky positioning (position:sticky)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Style attributes
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Syntax
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Text decoration
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Text overflow
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Text shadows
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Transforms (2D)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Transforms (3D)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Transitions
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Values and Units
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Will Change
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Writing modes
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • CSSOM (CSS Object Model)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • CSSOM View Module
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates

Graphics and typography

  • Canvas
    • Tracking issue: 2D canvas library #6
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • WebGL
    • Tracking issue: Web GL #5
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • SVG
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • WOFF
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • MathML
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Web Animations
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates

Media

  • Web Audio API
    • Tracking issue: WebAudio library #9
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • WebVTT
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Media Source Extensions
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Media Fragments
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates

Platform interaction, events, messaging

  • Notifications API
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Cross-document messaging
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Channel messaging
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Fullscreen API
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Geolocation
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Device Orientation
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Screen Orientation
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • UI Events (formerly DOM Events)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Pointer Events
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Touch Events
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Pointer Lock
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Gamepad
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • getUserMedia
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Battery Status
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Vibration
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Beacon
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • HTML Media Capture (the capture attribute)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Clipboard API and events
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates

Storage and Files

Real-time communication

Web Components

  • Custom Elements
  • Shadow DOM
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Templates
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates

HTML bonus features

  • classList (DOMTokenList)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • dataset (data-* attributes)
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • async for scripts
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • defer for scripts
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Session-history management
  • hashchange
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Sandboxed iframe
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Drag and drop
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • contentEditable
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • ARIA
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates

Performance optimization and analysis

Security and privacy

Other core-platform bonus features

  • Structured cloning
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Transferable objects
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Mutation observers
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Streams
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • DOM Parsing and Serialization
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • DOM XPath
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Quirks Mode
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Internationalization API
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Promises
  • JSON parsing
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Typed Array
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Service Workers
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Intersection Observer
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • querySelector() method
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • matches() method
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • matchMedia() method
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • data URLs
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates

Foundations

  • HTTP
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • HTTP/2
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • TLS
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Cookies
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Origin
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • Unicode
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates
  • MIME Sniffing
    • Tracking issue: #todo
    • Direct rust translation
    • Futures and/or Stream API
    • Existing crates

@derekdreery
Copy link
Contributor

Some of these items are not really APIs, for example the CSS roadmap, and others are very niche and probably not often used. Would it be better to create tracking issues for all items, or do it on an ad-hoc basis?

@yoshuawuyts
Copy link
Collaborator

@derekdreery oh that's really good; nice work! What we did for async-std was create dedicated tracking issues; for example streams.

I think creating a tracking issue per-heading would probably work well; then gathering each tracking issue under a shared milestone to track overall progress.

Something we also found worked well was regularly announce these issues on "This week in rust: call for participation". With a little bit of outreach it's probably possible to knock a lot of these out in no-time.

@Pauan
Copy link
Contributor

Pauan commented Feb 14, 2020

@derekdreery Thanks! I think it would be best to create issues on an ad-hoc basis, so we can ignore things which don't make sense for gloo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

5 participants