# 📇 vcard-rs [](https://docs.rs/vcard-rs/latest/vcard) [](https://codecov.io/gh/pimalaya/vcard) [](https://matrix.to/#/#pimalaya:matrix.org) [](https://fosstodon.org/@pimalaya) [](https://pimalaya.org/sponsor/)
vCard parser, validator, editor and builder library for Rust
## Table of contents
- [Features](#features)
- [RFC coverage](#rfc-coverage)
- [Usage](#usage)
- [Examples](#examples)
- [AI policy](https://github.com/pimalaya/.github/blob/master/AI_POLICY.md)
- [License](#license)
- [Social](#social)
- [Contributing](./CONTRIBUTING.md)
- [Sponsoring](#sponsoring)
## Features
- **All vCard versions**: parse and write 2.1, 3.0 and 4.0 through a single, version-agnostic model.
- **Byte-faithful editing**: change one parameter or value and every other byte of the card, line endings included, is preserved exactly.
- **Forgiving parser**: accept any real card, even a malformed one, and round-trip it unchanged.
- **Strict building and validation**: construct cards checked against the standard, with an escape hatch when you need to step outside it.
- **Small and portable**: no_std compatible, with an allocation-only core that pulls in no dependencies.
- **Optional content decoding**: quoted-printable text, inline base64 binary and foreign character sets, each behind its own feature.
- **Optional jCard**: read and write a card as JSON.
- **Optional JSContact**: convert a card to and from the Card object exchanged over JMAP.
> [!TIP]
> vcard-rs uses [cargo features](https://doc.rust-lang.org/cargo/reference/features.html) to gate optional support. The default feature set is declared in [Cargo.toml](./Cargo.toml) or on [docs.rs](https://docs.rs/crate/vcard-rs/latest/features).
## RFC coverage
| Spec | What is covered |
|--------|----------------------------------------------------------------------------------------------------------|
| [2.1] | vCard 2.1: the original versit format, including its quoted-printable and charset conventions |
| [2425] | text/directory: bare directory records carrying no BEGIN and END envelope |
| [2426] | vCard 3.0 |
| [6350] | vCard 4.0: the current standard, with its full property set, value types and parameters |
| [7095] | jCard: the JSON representation of a card |
| [9553] | JSContact: the Card object model exchanged over JMAP |
| [9554] | vCard format extensions: the newer properties and the extended address components, modeled first-class |
| [9555] | JSContact vCard mapping: the lossless conversion between a card and a JSContact Card |
[2.1]: https://www.imc.org/pdi/vcard-21.txt
[2425]: https://www.rfc-editor.org/rfc/rfc2425
[2426]: https://www.rfc-editor.org/rfc/rfc2426
[6350]: https://www.rfc-editor.org/rfc/rfc6350
[7095]: https://www.rfc-editor.org/rfc/rfc7095
[9553]: https://www.rfc-editor.org/rfc/rfc9553
[9554]: https://www.rfc-editor.org/rfc/rfc9554
[9555]: https://www.rfc-editor.org/rfc/rfc9555
## Usage
See documentation at [docs.rs](https://docs.rs/vcard-rs/latest/vcard).
## Examples
See complete examples at [./examples](./examples).
## License
This project is licensed under either of:
- [MIT license](LICENSE-MIT)
- [Apache License, Version 2.0](LICENSE-APACHE)
## Social
- Chat on [Matrix](https://matrix.to/#/#pimalaya:matrix.org)
- News on [Mastodon](https://fosstodon.org/@pimalaya) or [RSS](https://fosstodon.org/@pimalaya.rss)
- Mail at [pimalaya.org@posteo.net](mailto:pimalaya.org@posteo.net)
## Sponsoring
[](https://nlnet.nl/)
Special thanks to the [NLnet foundation](https://nlnet.nl/) and the [European Commission](https://www.ngi.eu/) that have been financially supporting the project for years:
- 2022 → 2023: [NGI Assure](https://nlnet.nl/project/Himalaya/)
- 2023 → 2024: [NGI Zero Entrust](https://nlnet.nl/project/Pimalaya/)
- 2024 → 2026: [NGI Zero Core](https://nlnet.nl/project/Pimalaya-PIM/)
- 2026 → 2027: [NGI Zero Commons Fund](https://nlnet.nl/project/Pimalaya-pimdir/)
This program is part of Pimalaya, free software funded entirely by grants and donations. If you find it useful, consider [sponsoring](https://pimalaya.org/sponsor/) its development:
[](https://github.com/sponsors/soywod)
[](https://ko-fi.com/pimalaya)
[](https://www.buymeacoffee.com/pimalaya)
[](https://liberapay.com/pimalaya)
[](https://thanks.dev/u/gh/soywod)
[](https://www.paypal.com/paypalme/soywod)