Implements Phases 1-8 of the TFTSR implementation plan. Rust backend (Tauri 2.x, src-tauri/): - Multi-provider AI: OpenAI-compatible, Anthropic, Gemini, Mistral, Ollama - PII detection engine: 11 regex patterns with overlap resolution - SQLCipher AES-256 encrypted database with 10 versioned migrations - 28 Tauri IPC commands for triage, analysis, document, and system ops - Ollama: hardware probe, model recommendations, pull/delete with events - RCA and blameless post-mortem Markdown document generators - PDF export via printpdf - Audit log: SHA-256 hash of every external data send - Integration stubs for Confluence, ServiceNow, Azure DevOps (v0.2) Frontend (React 18 + TypeScript + Vite, src/): - 9 pages: full triage workflow NewIssue→LogUpload→Triage→Resolution→RCA→Postmortem→History+Settings - 7 components: ChatWindow, TriageProgress, PiiDiffViewer, DocEditor, HardwareReport, ModelSelector, UI primitives - 3 Zustand stores: session, settings (persisted), history - Type-safe tauriCommands.ts matching Rust backend types exactly - 8 IT domain system prompts (Linux, Windows, Network, K8s, DB, Virt, HW, Obs) DevOps: - .woodpecker/test.yml: rustfmt, clippy, cargo test, tsc, vitest on every push - .woodpecker/release.yml: linux/amd64 + linux/arm64 builds, Gogs release upload Verified: - cargo check: zero errors - tsc --noEmit: zero errors - vitest run: 13/13 unit tests passing Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
226 lines
11 KiB
Markdown
226 lines
11 KiB
Markdown
# [fast-xml-parser](https://www.npmjs.com/package/fast-xml-parser)
|
|
|
|
[](https://npm.im/fast-xml-parser)
|
|
|
|
Validate XML, Parse XML to JS Object, or Build XML from JS Object without C/C++ based libraries and no callback.
|
|
|
|
<img align="right" src="static/img/fxp_logo.png" width="180px" alt="FXP logo"/>
|
|
|
|
* Validate XML data syntactically. Use [detailed-xml-validator](https://github.com/NaturalIntelligence/detailed-xml-validator/) to verify business rules.
|
|
* Parse XML to JS Objects and vice versa
|
|
* Common JS, ESM, and browser compatible
|
|
* Faster than any other pure JS implementation.
|
|
|
|
It can handle big files (tested up to 100mb). XML Entities, HTML entities, and DOCTYPE entites are supported. Unpaired tags (Eg `<br>` in HTML), stop nodes (Eg `<script>` in HTML) are supported. It can also preserve Order of tags in JS object
|
|
|
|
---
|
|
# Your Support, Our Motivation
|
|
|
|
## Try out our New Thoughts
|
|
|
|
- WishIn - You need it if negative thoughts take over all the time <br>
|
|
<a href="https://play.google.com/store/apps/details?id=com.solothought.wishin"> <img src="https://solothought.com/products/assets/images/wishin/YouTubeThumbnail.png" width="500px"/> </a>
|
|
- **Flowgger**: 90% less logs size and 90% less debugging time<br>
|
|
<a href="https://github.com/solothought/flowgger"> <img src="static/img/flowgger_h.webp" alt="Flowgger Logging Framework" width="300px"/></a>
|
|
- [Text2Chart](https://solothought.com/text2chart/flow): interactive flow chart out of simple text.
|
|
|
|
## Financial Support
|
|
|
|
Sponsor this project
|
|
|
|
<a href="https://github.com/sponsors/NaturalIntelligence">
|
|
<img src="https://raw.githubusercontent.com/NaturalIntelligence/ThankYouBackers/main/github_sponsor.png" width="180" />
|
|
</a>
|
|
<a href="https://opencollective.com/fast-xml-parser/donate" target="_blank">
|
|
<img src="https://opencollective.com/fast-xml-parser/donate/button@2x.png?color=blue" width=180 />
|
|
</a>
|
|
<a href="https://paypal.me/naturalintelligence"> <img src="static/img/support_paypal.svg" alt="donate button" width="180"/></a>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
|
|
<!--
|
|
### Current Sponsors
|
|
|
|
Check the complete list at [ThankYouBackers](https://github.com/NaturalIntelligence/ThankYouBackers) for our sponsors and supporters.
|
|
|
|
Through Github
|
|
|
|
<a href="https://github.com/skunkteam" target="_blank"><img src="https://avatars.githubusercontent.com/u/46373671?s=60" width="60px"></a>
|
|
<a href="https://github.com/getsentry" target="_blank"><img src="https://avatars.githubusercontent.com/u/1396951?s=60" width="60px"></a>
|
|
|
|
Through OpenCollective
|
|
|
|
<a href="https://opencollective.com/fast-xml-parser/sponsor/0/website" target="_blank"><img src="https://opencollective.com/fast-xml-parser/sponsor/0/avatar.svg"></a>
|
|
<a href="https://opencollective.com/fast-xml-parser/sponsor/1/website" target="_blank"><img src="https://opencollective.com/fast-xml-parser/sponsor/1/avatar.svg"></a>
|
|
<a href="https://opencollective.com/fast-xml-parser/sponsor/2/website" target="_blank"><img src="https://opencollective.com/fast-xml-parser/sponsor/2/avatar.svg"></a>
|
|
<a href="https://opencollective.com/fast-xml-parser/sponsor/3/website" target="_blank"><img src="https://opencollective.com/fast-xml-parser/sponsor/3/avatar.svg"></a>
|
|
<a href="https://opencollective.com/fast-xml-parser/sponsor/4/website" target="_blank"><img src="https://opencollective.com/fast-xml-parser/sponsor/4/avatar.svg"></a>
|
|
<a href="https://opencollective.com/fast-xml-parser/sponsor/5/website" target="_blank"><img src="https://opencollective.com/fast-xml-parser/sponsor/5/avatar.svg"></a>
|
|
<a href="https://opencollective.com/fast-xml-parser/sponsor/6/website" target="_blank"><img src="https://opencollective.com/fast-xml-parser/sponsor/6/avatar.svg"></a>
|
|
<a href="https://opencollective.com/fast-xml-parser/sponsor/7/website" target="_blank"><img src="https://opencollective.com/fast-xml-parser/sponsor/7/avatar.svg"></a>
|
|
<a href="https://opencollective.com/fast-xml-parser/sponsor/8/website" target="_blank"><img src="https://opencollective.com/fast-xml-parser/sponsor/8/avatar.svg"></a>
|
|
<a href="https://opencollective.com/fast-xml-parser/sponsor/9/website" target="_blank"><img src="https://opencollective.com/fast-xml-parser/sponsor/9/avatar.svg"></a>
|
|
-->
|
|
|
|

|
|
|
|
> This is a donation. No goods or services are expected in return. Any requests for refunds for those purposes will be rejected.
|
|
|
|
## Users
|
|
|
|
<a href="https://github.com/renovatebot/renovate" title="renovate" ><img src="https://avatars1.githubusercontent.com/u/38656520" width="60px" ></a>
|
|
<a href="https://vmware.com/" title="vmware" > <img src="https://avatars0.githubusercontent.com/u/473334" width="60px" ></a>
|
|
<a href="https://opensource.microsoft.com/" title="microsoft" > <img src="https://avatars0.githubusercontent.com/u/6154722" width="60px" ></a>
|
|
<a href="http://ibm.github.io/" title="IBM" > <img src="https://avatars2.githubusercontent.com/u/1459110" width="60px" ></a>
|
|
<a href="http://www.smartbear.com" title="SmartBear Software" > <img src="https://avatars2.githubusercontent.com/u/1644671" width="60px" ></a>
|
|
<a href="http://nasa.github.io/" title="NASA" > <img src="https://avatars0.githubusercontent.com/u/848102" width="60px" ></a>
|
|
<a href="https://github.com/prettier" title="Prettier" > <img src="https://avatars0.githubusercontent.com/u/25822731" width="60px" ></a>
|
|
<a href="http://brain.js.org/" title="brain.js" > <img src="https://avatars2.githubusercontent.com/u/23732838" width="60px" ></a>
|
|
<a href="https://github.com/aws" title="AWS SDK" > <img src="https://avatars.githubusercontent.com/u/2232217" width="60px" ></a>
|
|
<a href="http://www.fda.gov/" title="Food and Drug Administration " > <img src="https://avatars2.githubusercontent.com/u/6471964" width="60px" ></a>
|
|
<a href="http://www.magento.com/" title="Magento" > <img src="https://avatars2.githubusercontent.com/u/168457" width="60px" ></a>
|
|
<a href="https://github.com/SAP" title="SAP" > <img src="https://user-images.githubusercontent.com/7692328/204835214-d9d25b58-e3df-408d-87a3-c7d36b578ee4.png" width="60px" ></a>
|
|
<a href="https://github.com/postmanlabs" title="postman" > <img src="https://user-images.githubusercontent.com/7692328/204835529-e9e290ad-696a-49ad-9d34-08e955704715.png" width="60px" ></a>
|
|
<a href="https://github.com/react-native-community" title="React Native Community" > <img src="https://avatars.githubusercontent.com/u/20269980?v=4" width="60px" ></a>
|
|
<a href="https://github.com/googleapis" title="Google APIs" > <img src="https://avatars.githubusercontent.com/u/16785467?v=4" width="60px" ></a>
|
|
<a href="https://github.com/langchain-ai" title="Langchain AI" > <img src="https://avatars.githubusercontent.com/u/126733545?v=4" width="60px" ></a>
|
|
<a href="https://github.com/withastro" title="Astro websie builder" > <img src="https://avatars.githubusercontent.com/u/44914786?v=4" width="60px" ></a>
|
|
<a href="https://github.com/baidu" title="Baidu" > <img src="https://avatars.githubusercontent.com/u/13245940?v=4" width="60px" ></a>
|
|
[more](./USERs.md)
|
|
|
|
<small>The list of users are mostly published by Github or communicated directly. Feel free to contact if you find any information wrong.</small>
|
|
|
|
---
|
|
|
|
# More about this library
|
|
|
|
## How to use
|
|
|
|
To use as package dependency
|
|
`$ npm install fast-xml-parser`
|
|
or
|
|
`$ yarn add fast-xml-parser`
|
|
|
|
To use as system command
|
|
`$ npm install fast-xml-parser -g`
|
|
|
|
To use it on a **webpage** include it from a [CDN](https://cdnjs.com/libraries/fast-xml-parser)
|
|
|
|
**Example**
|
|
|
|
As CLI command
|
|
```bash
|
|
$ fxparser some.xml
|
|
```
|
|
|
|
In a node js project
|
|
```js
|
|
const { XMLParser, XMLBuilder, XMLValidator} = require("fast-xml-parser");
|
|
|
|
const parser = new XMLParser();
|
|
let jObj = parser.parse(XMLdata);
|
|
|
|
const builder = new XMLBuilder();
|
|
const xmlContent = builder.build(jObj);
|
|
```
|
|
|
|
In a HTML page
|
|
```html
|
|
<script src="path/to/fxp.min.js"></script>
|
|
:
|
|
<script>
|
|
const parser = new fxparser.XMLParser();
|
|
parser.parse(xmlContent);
|
|
</script>
|
|
```
|
|
|
|
Bundle size
|
|
|
|
| Bundle Name | Size |
|
|
| ------------------ | ---- |
|
|
| fxbuilder.min.js | 6.5K |
|
|
| fxparser.min.js | 20K |
|
|
| fxp.min.js | 26K |
|
|
| fxvalidator.min.js | 5.7K |
|
|
|
|
## Documents
|
|
<table>
|
|
<tr><td>v3</td><td>v4 and v5</td><td>v6</td></tr>
|
|
<tr>
|
|
<td>
|
|
<a href="./docs/v3/docs.md">documents</a>
|
|
</td>
|
|
<td><ol>
|
|
<li><a href="./docs/v4,v5/1.GettingStarted.md">Getting Started</a></li>
|
|
<li><a href="./docs/v4,v5/2.XMLparseOptions.md">XML Parser</a></li>
|
|
<li><a href="./docs/v4,v5/3.XMLBuilder.md">XML Builder</a></li>
|
|
<li><a href="./docs/v4,v5/4.XMLValidator.md">XML Validator</a></li>
|
|
<li><a href="./docs/v4,v5/5.Entities.md">Entities</a></li>
|
|
<li><a href="./docs/v4,v5/6.HTMLParsing.md">HTML Document Parsing</a></li>
|
|
<li><a href="./docs/v4,v5/7.PITags.md">PI Tag processing</a></li>
|
|
<li><a href="./docs/v4,v5/8.PathExpression.md">Path Expression</a></li>
|
|
</ol></td>
|
|
<td><ol>
|
|
<li></li><a href="./docs/v6/1.GettingStarted.md">Getting Started</a></li>
|
|
<li><a href="./docs/v6/2.Features.md">Features</a></li>
|
|
<li><a href="./docs/v6/3.Options.md">Options</a></li>
|
|
<li><a href="./docs/v6/4.OutputBuilders.md">Output Builders</a></li>
|
|
<li><a href="./docs/v6/5.ValueParsers.md">Value Parsers</a></li>
|
|
</ol></td>
|
|
</tr>
|
|
</table>
|
|
|
|
**note**:
|
|
- Version 6 is released with version 4 for experimental use. Based on its demand, it'll be developed and the features can be different in final release.
|
|
- Version 5 has the same functionalities as version 4.
|
|
|
|
## Performance
|
|
<small>negative means error</small>
|
|
|
|
### XML Parser
|
|
|
|
<img align="left" src="./docs/imgs/XMLParser_v4.png" width="45%" />
|
|
<img src="./docs/imgs/XMLParser_large_v4.png" width="47%" />
|
|
|
|
* Y-axis: requests per second
|
|
* X-axis: File size
|
|
|
|
### XML Builder
|
|
|
|
<img src="./docs/imgs/XMLBuilder_v4.png" width="50%" />
|
|
* Y-axis: requests per second
|
|
|
|
<!-- [](https://github.com/NaturalIntelligence/ads/) -->
|
|
|
|
---
|
|
|
|
## Usage Trend
|
|
|
|
[Usage Trend of fast-xml-parser](https://npm-compare.com/fast-xml-parser#timeRange=THREE_YEARS)
|
|
|
|
<a href="https://npm-compare.com/fast-xml-parser#timeRange=THREE_YEARS" target="_blank">
|
|
<img src="https://npm-compare.com/img/npm-trend/THREE_YEARS/fast-xml-parser.png" width="50%" alt="NPM Usage Trend of fast-xml-parser" />
|
|
</a>
|
|
|
|
# Supporters
|
|
#### Contributors
|
|
|
|
This project exists thanks to [all](graphs/contributors) the people who contribute. [[Contribute](docs/CONTRIBUTING.md)].
|
|
|
|
<a href="graphs/contributors"><img src="https://opencollective.com/fast-xml-parser/contributors.svg?width=890&button=false" /></a>
|
|
|
|
|
|
#### Backers from Open collective
|
|
|
|
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/fast-xml-parser#backer)]
|
|
|
|
<a href="https://opencollective.com/fast-xml-parser#backers" target="_blank"><img src="https://opencollective.com/fast-xml-parser/backers.svg?width=890"></a>
|
|
|
|
|
|
|
|
# License
|
|
* MIT License
|
|
|
|

|