mirror of https://github.com/tauri-apps/tauri
Feature/readme (#126)
* feat(badges): add badges * feat(whois): tauri for?
This commit is contained in:
parent
19756be683
commit
7c84125418
95
README.md
95
README.md
|
@ -1,21 +1,26 @@
|
|||
# tauri [WIP]
|
||||
## A fresh take on creating cross-platform apps.
|
||||
[![status](https://img.shields.io/badge/Status-Internal%20Review-yellow.svg)](https://github.com/quasarframework/quasar/tree/tauri)
|
||||
[![version](https://img.shields.io/badge/Version-unreleased-yellow.svg)](https://github.com/tauri-apps/tauri/tree/dev) <img align="right" src="/app-icon.png" height="240" width="240">
|
||||
# tauri
|
||||
<img align="right" src="app-icon.png" height="200" width="200">
|
||||
|
||||
## A fresh take on creating cross-platform apps.
|
||||
[![status](https://img.shields.io/badge/Status-Early%20Alpha-yellow.svg)](https://github.com/quasarframework/quasar/tree/tauri)
|
||||
[![Chat Server](https://img.shields.io/badge/chat-on%20discord-7289da.svg)](https://discord.gg/SpmNs4S)
|
||||
[![devto](https://img.shields.io/badge/dev.to-blog-black.svg)](https://dev.to/tauri)
|
||||
[![devto](https://img.shields.io/badge/blog-dev.to-black.svg)](https://dev.to/tauri)
|
||||
|
||||
![](https://img.shields.io/github/workflow/status/tauri-apps/tauri/test%20library?label=test%20library
|
||||
)
|
||||
[![devto](https://img.shields.io/badge/documentation-site-purple.svg)](https://tauri-apps.org)
|
||||
|
||||
[![https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg](https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg)](https://good-labs.github.io/greater-good-affirmation)
|
||||
[![support](https://img.shields.io/badge/Sponsor-Opencollective-blue.svg)](https://opencollective.com/tauri)
|
||||
[![support](https://img.shields.io/badge/sponsor-Opencollective-blue.svg)](https://opencollective.com/tauri)
|
||||
|
||||
|
||||
**Tauri** is a tool for building tiny, blazing fast binaries for all
|
||||
major desktop platforms. It was incubated at Quasar Framework.
|
||||
Tauri is a tool for building tiny, blazing fast binaries for all major desktop platforms. You can use any front-end framework that compiles to HTML,JS and CSS for building your interface.
|
||||
|
||||
Whether you are just starting out making apps for your meetup or
|
||||
regularly crunch terabyte datasets, we are absolutely confident that
|
||||
you will love using Tauri as much as we love making and maintaining it.
|
||||
| Component | Version | Lin | Win | Mac |
|
||||
|-----------|---------|-----|-----|-----|
|
||||
| tauri.js | ![](https://img.shields.io/npm/v/tauri.svg) |✅|✅|✅|
|
||||
| tauri | ![](https://img.shields.io/crates/v/tauri.svg) |✅|✅|✅|
|
||||
| tauri CLI | ![](https://img.shields.io/crates/v/tauri-cli.svg) |✅|✅|✅ |
|
||||
|
||||
## Who Tauri is For
|
||||
Because of the way Tauri has been built and can be extended, developers
|
||||
|
@ -33,14 +38,21 @@ passing ecosystems - the bar has been raised and gauntlet thrown.
|
|||
|
||||
What will you make?
|
||||
|
||||
## 5 Reasons to consider Tauri
|
||||
## 4 Reasons to consider Tauri
|
||||
- **BUNDLE SIZE** of a vanilla Tauri app is less than 3 MB - about 140 MB smaller than what you get with Electron.
|
||||
- **MEMORY FOOTPRINT** is less than half of the size of an Electron app built from the same codebase.
|
||||
- **SECURITY** is Tauri's biggest priority and we take it so seriously that we innovate to keep hackers out of your apps.
|
||||
- **RELIABILITY** of the underlying code base is why critical libraries have been forked and will be perpetually maintained.
|
||||
- **SECURITY** is Tauri's biggest priority and we are constantly innovating.
|
||||
- **FLOSS** licensing is regretfully impossible with downstream Chromium consumers, like Electron. Sources: [0](https://lists.gnu.org/archive/html/libreplanet-discuss/2017-01/msg00056.html) [1](https://lists.gnu.org/archive/html/directory-discuss/2017-12/msg00008.html) [2](https://lists.gnu.org/archive/html/libreplanet-discuss/2019-02/msg00001.html)
|
||||
|
||||
## Technical Details
|
||||
Tauri has five major components:
|
||||
- [Node.js CLI](https://github.com/tauri-apps/tauri/tree/dev/cli/tauri.js) for creating, developing and building apps
|
||||
- [Rust Core](https://github.com/tauri-apps/tauri/tree/dev/tauri) for binding to the low level WEBVIEW and providing a tree-shakeable API
|
||||
- [Rust CLI](https://github.com/tauri-apps/tauri/tree/dev/cli/tauri-cli) for manufacturing the final binaries
|
||||
- [Rust Bindings](https://github.com/Boscop/web-view) for Webviews
|
||||
- [Webview](https://github.com/Boscop/web-view/tree/master/webview-sys)
|
||||
Low level library for creating and interfacing with OS "native" webviews
|
||||
|
||||
The user interface in Tauri apps currently leverages Cocoa/WebKit on macOS,
|
||||
gtk-webkit2 on Linux and MSHTML (IE10/11) or Webkit via Edge on Windows.
|
||||
**Tauri** is based on the MIT licensed prior work known as
|
||||
|
@ -50,43 +62,18 @@ The default binding to the underlying webview library currently uses Rust,
|
|||
but other languages like Golang or Python (and many others) are possible
|
||||
(and only a PR away).
|
||||
|
||||
> Rust is blazingly fast and memory-efficient: with no runtime or garbage
|
||||
collector, it can power performance-critical services, run on embedded
|
||||
devices, and easily integrate with other languages. Rust’s rich type system
|
||||
and ownership model guarantee memory-safety and thread-safety — and enable
|
||||
you to eliminate many classes of bugs at compile-time. Rust has great
|
||||
documentation, a friendly compiler with useful error messages, and top-notch
|
||||
tooling — an integrated package manager and build tool, smart multi-editor
|
||||
support with auto-completion and type inspections, an auto-formatter, and
|
||||
more. - [https://www.rust-lang.org/](https://www.rust-lang.org/)
|
||||
|
||||
This combination of power, safety and usability are why we chose Rust to be
|
||||
The combination of power, safety and usability are why we chose Rust to be
|
||||
the default binding for Tauri. It is our intention to provide the most safe
|
||||
and performant native app experience (for devs and app consumers), out of
|
||||
the box.
|
||||
|
||||
To this end, we have spent a great deal of time creating an especially secure
|
||||
localhost-free backend for the security conscious application-artisans. This
|
||||
means that your app does not use a localhost server, as is generally the case with
|
||||
cordova apps. This also has the positive side effect, that less code is needed
|
||||
and the final binaries are smaller.
|
||||
|
||||
> Less code doesn't always mean something is safer, but it does mean that
|
||||
> there is less surface area for attackers to barnacle themselves. - Denjell
|
||||
|
||||
### Current Status
|
||||
We are in the process of vetting this new mode. It is not yet available to
|
||||
use without jumping through some development hurdles. If you don't care,
|
||||
please [reach out to the team](https://discord.gg/SpmNs4S) and we'll guide
|
||||
you through the process. Here is a bit of a status report.
|
||||
|
||||
#### App Bundles
|
||||
- [x] App Icons and integration with Icon-Genie
|
||||
- [x] App Icons
|
||||
- [x] Build on MacOS (.app, .dmg coming soon)
|
||||
- [x] Build on Linux (.deb, AppImage coming soon)
|
||||
- [x] Build on Windows (.exe, .msi coming soon)
|
||||
- [ ] App Signing
|
||||
- [x] Self Updater (WIP)
|
||||
- [ ] Self Updater (WIP)
|
||||
- [ ] Frameless Mode
|
||||
- [ ] Transparent Mode
|
||||
- [ ] Multiwindow Mode
|
||||
|
@ -94,8 +81,7 @@ you through the process. Here is a bit of a status report.
|
|||
- [x] Copy Buffer
|
||||
|
||||
#### API
|
||||
- [ ] answer - enable rust to direct the UI
|
||||
- [ ] bridge - enable Quasar Bridge
|
||||
- [x] bridge - enable fast bridge
|
||||
- [x] event - enable binding to message
|
||||
- [x] execute - STDOUT Passthrough with Command Invocation
|
||||
- [x] listFiles - list files in a directory
|
||||
|
@ -105,28 +91,23 @@ you through the process. Here is a bit of a status report.
|
|||
- [x] setTitle - set the window title
|
||||
- [x] writeFile - write file to local filesystem
|
||||
- [x] API Spec
|
||||
- [x] Inter Process Communication (IPC)
|
||||
- [x] Documentation (WIP)
|
||||
- [x] Message Bus
|
||||
|
||||
### Security Features
|
||||
- [x] localhost-free mode (:fire:)
|
||||
- [x] Secure Cryptographic Enclave (devland implementation)
|
||||
- [x] Dynamic ahead of Time Compilation (dAoT) with functional tree-shaking
|
||||
- [x] functional Address Space Layout Randomization
|
||||
- [x] OTP salting of function names and messages
|
||||
- [x] OTP salting of function names and messages at runtime
|
||||
- [x] CSP Injection
|
||||
- [ ] Frida-based harness for Post-Binary Analysis
|
||||
|
||||
### Comparison between Tauri 1 and Electron 5
|
||||
### Comparison between Tauri and Electron
|
||||
|
||||
| | Tauri | Electron |
|
||||
|--|--------|----------|
|
||||
| Binary Size MacOS | 2.6 MB | 147.7 MB |
|
||||
| Binary Size MacOS | 0.6 MB | 47.7 MB |
|
||||
| Memory Consumption MacOS | 13 MB | 34.1 MB |
|
||||
| Benchmark FPS | TODO | TODO |
|
||||
| Interface Service Provider | Varies | Chromium |
|
||||
| Quasar UI | VueJS | VueJS |
|
||||
| Backend Binding | Rust | Node.js (ECMAScript) |
|
||||
| Underlying Engine | C/C++ | V8 (C/C++) |
|
||||
| FLOSS | Yes | No |
|
||||
|
@ -135,8 +116,7 @@ you through the process. Here is a bit of a status report.
|
|||
| Can Render PDF | Yes | No |
|
||||
| Multiple Windows | Soon | Yes |
|
||||
| GPU Access | Yes | Yes |
|
||||
| Auto Updater | Yes | Yes (1) |
|
||||
| Inter Process Communication (IPC) | Yes | Yes |
|
||||
| Auto Updater | Soon | Yes (1) |
|
||||
| Cross Platform | Yes | Yes |
|
||||
| Custom App Icon | Yes | Yes |
|
||||
| Windows Binary | Yes | Yes |
|
||||
|
@ -155,12 +135,6 @@ you through the process. Here is a bit of a status report.
|
|||
Tauri aims to be a sustainable collective based on principles that guide [sustainable
|
||||
free and open software communities](https://sfosc.org). You can get involved in many ways.
|
||||
|
||||
## Relation to Upstream Origins
|
||||
We have made the decision to fork, enhance and maintain several upstream
|
||||
projects here in this repository, in order to guarantee the security of the
|
||||
code and our ability to enhance it with features that may not be needed for
|
||||
other consumers.
|
||||
|
||||
We hope that this code is useful, but make no claims to suitability or
|
||||
guarantees that it will work outside of the Quasar ecosystem.
|
||||
|
||||
|
@ -191,4 +165,3 @@ MIT or MIT/Apache where applicable.
|
|||
|
||||
Logo: CC-BY-NC-ND
|
||||
- Original Tauri Logo Design by [Daniel Thompson-Yvetot](https://github.com/nothingismagick)
|
||||
- Based on the prior work by [Emanuele Bertoldi](https://github.com/zuck)
|
||||
|
|
Loading…
Reference in New Issue