rfc:free-json-parser

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
rfc:free-json-parser [2013/08/25 17:08] – [Backward Incompatible Changes] remirfc:free-json-parser [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 1: Line 1:
  
 ====== PHP RFC: Switch from json extension to jsonc ====== ====== PHP RFC: Switch from json extension to jsonc ======
-  * Version: 0.1+  * Version: 1.0
   * Date: 2013-08-25   * Date: 2013-08-25
   * Author: Remi Collet <remi@php.net>   * Author: Remi Collet <remi@php.net>
-  * Status: Draft (or Under Discussion or Accepted or Declined)+  * Status: Under Discussion (or Accepted or Declined)
   * First Published at: https://wiki.php.net/rfc/free-json-parser   * First Published at: https://wiki.php.net/rfc/free-json-parser
  
Line 15: Line 15:
 Effectively, code from json.org is not free, as its License includes a restriction to freedom 0 (run the program for any purpose) : "The Software shall be used for Good, not Evil" The discussion about this state is out of the scope of this RFC. Effectively, code from json.org is not free, as its License includes a restriction to freedom 0 (run the program for any purpose) : "The Software shall be used for Good, not Evil" The discussion about this state is out of the scope of this RFC.
  
-The encoder code is free since PHP 5.4.10 ([[https://bugs.php.net/id=63588|Bug #63588]])+The encoder code is free since PHP 5.4.10 ([[https://bugs.php.net/63588|Bug #63588]])
  
 ===== Proposal ===== ===== Proposal =====
  
-The extension jsonc extension, currently available from PECL site is designed to be a dropin alternative.  +The **jsonc** extension, currently available from PECL site is designed to be a dropin alternative (same user API and internal ABI for other extensions)
-  * Same **encoder** than PHP 5.5 +  * Same **encoder** as in PHP 5.5 
-  * **Parser** provided by the [[https://github.com/json-c/json-c|json-c]] library (License MIT). Build support use of system library (--with-libjson) of bundled copy (currently version 0.11 + some patches waiting for upstream review)+  * **Parser** provided by the [[https://github.com/json-c/json-c|json-c]] library (License MIT). Build can use the system library (--with-libjson) or the bundled copy (currently version 0.11 + some patches waiting for upstream review)
  
-As the new parser is an incremental onenew **JsonIncrementalParser** class expose this feature+While the main purpose of this RFC is to fix the Licensing issueit also introduce some new features.
  
 +As the new parser is an incremental one, the new **JsonIncrementalParser** class expose this feature
  
 <code> <code>
Line 75: Line 76:
   * **Debian** since PHP 5.5 / Jessie   * **Debian** since PHP 5.5 / Jessie
   * **Fedora** since PHP 5.5 / Fedora 19   * **Fedora** since PHP 5.5 / Fedora 19
-  * **Mageia**+  * **Mageia** since PHP 5.5
   * **Ubuntu** since PHP 5.5 / Saucy   * **Ubuntu** since PHP 5.5 / Saucy
  
Line 84: Line 85:
 ===== Impact to Existing Extensions ===== ===== Impact to Existing Extensions =====
  
-  * replace json extension by jsonc+  * replace json extension by jsonc (of course, renamed to json)
  
 ===== New Constants ===== ===== New Constants =====
Line 104: Line 105:
 ===== Unaffected PHP Functionality ===== ===== Unaffected PHP Functionality =====
  
-List existing areas/features of PHP that will not be changed by the RFC+No change in PHP engine
- +No change for other extension.
-This helps avoid any ambiguity, shows that you have thought deeply about the RFC's impact, and helps reduces mail list noise.+
  
 ===== Future Scope ===== ===== Future Scope =====
Line 112: Line 112:
 Speed improvment. Speed improvment.
  
 +As the original author (omar) seems no more involed, I could maintain this extension in the future.
  
 +Implement some RFE such as [[https://bugs.php.net/bug.php?id=65082|Bug #65082 new option for replacing ill-formed byte sequences with substitute char]]
 ===== Proposed Voting Choices ===== ===== Proposed Voting Choices =====
  
rfc/free-json-parser.1377450483.txt.gz · Last modified: 2017/09/22 13:28 (external edit)