mirror of
https://github.com/tauri-apps/rfcs.git
synced 2026-01-31 00:35:24 +01:00
RFC Proposal
This commit is contained in:
75
texts/RFC_001.md
Normal file
75
texts/RFC_001.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# RFC #001 Webview
|
||||
|
||||
| Status | Proposed |
|
||||
:-------------- | ---------------------------------------------------- |
|
||||
| **RFC #** | [001](https://github.com/tauri-apps/governance-and-guidance/pull/NNN)
|
||||
| **Authors** | Daniel Thompson-Yvetot (denjell@tauri.studio), Tensor Programming (tensor@tauri.studio) |
|
||||
| **External Sponsor** | Erlend (e.soghe@gmail.com) |
|
||||
| **Updated** | 2020-03-10 |
|
||||
|
||||
|
||||
## Objective
|
||||
We would like to have more direct involvement in the critical upstream libraries upon which Tauri is built.
|
||||
|
||||
## Motivation
|
||||
Tauri is a project that is heavily reliant on upstream bindings (currently boscop/web-view and zserge/webview). Over the past year there have been spurts of activity in both of these upstream resources, but communication with the lead developers has been challenging.
|
||||
|
||||
Furthermore, these two libraries have diverged in their source and approach and it is difficult to know where to contribute, let alone know when PRs will be merged.
|
||||
|
||||
Not only are there outstanding features (like [transparent and borderless windows](https://github.com/Boscop/web-view/commit/55f619190e6aa8c54fde8cf72d71a5126238a5e3), [additional menu items](https://github.com/Boscop/web-view/pull/125) etc.), but also [severe memory leaks](https://github.com/Boscop/web-view/issues/79).
|
||||
|
||||
Since we plan to release our Beta at some point in the next 4 months, we absolutely cannot carry this kind of architectural debt with us and need to come to a decision within the next 10 days.
|
||||
|
||||
## User Benefit
|
||||
- Consumers of Tauri will be able to have assurance that we are able to protect and maintain essential code.
|
||||
- The open source community at large becomes less fractured and our work will directly support other communities using webviews.
|
||||
- Consuming from the "pure" webview source will enable Tauri projects to more easily use other bindings at some point in the future.
|
||||
|
||||
## Design Proposal
|
||||
|
||||
### In any Case
|
||||
We will create generic mappings to the rust bindings, this will allow developers to more easily switch to other forks of webview and potentially other rendering engines entirely.
|
||||
|
||||
### Ideal Situation
|
||||
We become co-maintainers of the official webview/webview-rs bindings together with @boscop and consume official monolithic webview-x type headers directly from webview/webview
|
||||
|
||||
### Acceptable Situation
|
||||
We become co-maintainers of webview/webview-rs and consume official monolithic webview-x type headers directly from webview/webview.
|
||||
|
||||
### Backup Plan
|
||||
We consume webview-x type headers and bind them to tauri-apps/tauri-webview, essentially hard-forking. Contributions back upstream and manual merges from upstream possible, but will require additional effort (and attention).
|
||||
|
||||
### Alternatives Considered
|
||||
- Writing our own bindings.
|
||||
- Doing nothing and waiting.
|
||||
|
||||
### Performance Implications
|
||||
We expect general improvements across the board.
|
||||
|
||||
### Dependencies
|
||||
The way this plays out will necessarily impact the dependency tree, but it will be transparent for consumers of Tauri. Also, some of the C++ dependencies will be easier to consume on certain platforms.
|
||||
|
||||
### Engineering Impact
|
||||
We expect binary sizes to remain the same and hope to have improved memory management for Windows platforms.
|
||||
|
||||
### Platforms and Environments
|
||||
This will affect all platforms, but again, it will not affect the way in which Tauri works on a fundamental level.
|
||||
|
||||
### Security Impact
|
||||
Maintaining some kind of influence over the bindings and the headers needed for properly and safely using webviews will absolutely enhance our security posture.
|
||||
|
||||
### Tutorials and Examples
|
||||
Since this will mostly concern developers of the library itself, we should anticipate enhancing our own documentation in any case.
|
||||
|
||||
### Compatibility
|
||||
There may be API changes, but it will fall in the scope of ALPHA. For information regarding the API changes, refer to the webview repository's [readme](https://github.com/zserge/webview). We anticipate that MSHtml will not continue to be supported in the ecosystem in favor of Edge and Edge/Chromium.
|
||||
|
||||
### User Impact
|
||||
We anticipate only forward-changes with additionally exposed APIs.
|
||||
|
||||
## Questions and Discussion Topics
|
||||
What do you think? Is it going to be better for Tauri to hard fork and go its own way - or be part of the community and work together?
|
||||
|
||||
Would you be more willing to contribute to the webview organization or the Tauri organization? (Or doesn't it matter?)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user