quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

EXPERIMENTAL.md (2773B)


      1 <!--
      2 Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
      3 
      4 SPDX-License-Identifier: curl
      5 -->
      6 
      7 # Experimental
      8 
      9 Some features and functionality in curl and libcurl are considered
     10 **EXPERIMENTAL**.
     11 
     12 Experimental support in curl means:
     13 
     14 1. Experimental features are provided to allow users to try them out and
     15    provide feedback on functionality and API etc before they ship and get
     16    "carved in stone".
     17 2. You must enable the feature when invoking configure as otherwise curl is
     18    not built with the feature present.
     19 3. We strongly advise against using this feature in production.
     20 4. **We reserve the right to change behavior** of the feature without sticking
     21    to our API/ABI rules as we do for regular features, as long as it is marked
     22    experimental.
     23 5. Experimental features are clearly marked so in documentation. Beware.
     24 
     25 ## Graduation
     26 
     27 1. Each experimental feature should have a set of documented requirements of
     28    what is needed for that feature to graduate. Graduation means being removed
     29    from the list of experiments.
     30 2. An experiment should NOT graduate if it needs test cases to be disabled,
     31    unless they are for minor features that are clearly documented as not
     32    provided by the experiment and then the disabling should be managed inside
     33    each affected test case.
     34 
     35 ## Experimental features right now
     36 
     37 ###  HTTP/3 support (non-ngtcp2 backends)
     38 
     39 Graduation requirements:
     40 
     41 - The used libraries should be considered out-of-beta with a reasonable
     42   expectation of a stable API going forward.
     43 
     44 - Using HTTP/3 with the given build should perform without risking busy-loops
     45 
     46 ### The Rustls backend
     47 
     48 Graduation requirements:
     49 
     50 - a reasonable expectation of a stable API going forward.
     51 
     52 ## ECH
     53 
     54 Use of the HTTPS resource record and Encrypted Client Hello (ECH) when using
     55 DoH
     56 
     57 Graduation requirements:
     58 
     59 - ECH support exists in at least one widely used TLS library apart from
     60   BoringSSL and wolfSSL.
     61 
     62 - feedback from users saying that ECH works for their use cases
     63 
     64 - it has been given time to mature, so no earlier than April 2025 (twelve
     65   months after being added here)
     66 
     67 ## SSL session import/export
     68 
     69 Import/Export of SSL sessions tickets in libcurl and curl command line
     70 option '--ssl-session <filename>' for faster TLS handshakes and use
     71 of TLSv1.3/QUIC Early Data (0-RTT).
     72 
     73 Graduation requirements:
     74 
     75 - the implementation is considered safe
     76 
     77 - feedback from users saying that session export works for their use cases
     78 
     79 ## HTTPS RR
     80 
     81 HTTPS records support is a requirement for ECH but is provided as a
     82 stand-alone feature that is itself considered EXPERIMENTAL.
     83 
     84 Graduation requirements:
     85 
     86 - HTTPS records work for DoH, c-ares and the threaded resolver
     87 
     88 - HTTPS records can control ALPN and port number, at least
     89 
     90 - There are options to control HTTPS use