Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Apr 20, 2024. It is now read-only.

ml-archive/data-uri

Repository files navigation

DataURI

Swift Version Vapor Version Circle CI codebeat badge codecov Readme Score GitHub license

A pure Swift parser for Data URIs.

πŸ“¦ Installation

Update your Package.swift file.

.package(url: "https://github.com/nodes-vapor/data-uri.git", from: "2.0.0")

Getting started πŸš€

There are two options for decoding a Data URI. The first is using the String extension and the second is by using the DataURIParser directly.

The String method

This method is by far the easiest to use. All you need to do is call .dataURIDecoded() throws -> (data: Bytes, type: String) on any Data URI encoded String.

import Core //just for `Bytes.string`
import DataURI
let uri = "data:,Hello%2C%20World!"
let (data, type) = try uri.dataURIDecoded()
print(data.string) // "Hello, World!"
print(type) // "text/plain;charset=US-ASCII"

The DataURIParser method

Using the parser is a bit more involved as it returns all of its results as Bytes.

import Core //just for `Bytes.string`
import DataURI
let uri = "data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E"
let (data, type, metadata) = try DataURIParser.parse(uri: uri)
print(data.string) // "<h1>Hello, World!</h1>"
print(type.string) // "text/html"
print(metadata == nil) // "true"

πŸ† Credits

This package is developed and maintained by the Vapor team at Nodes. The package owner for this project is Tom.

πŸ“„ License

This package is open-sourced software licensed under the MIT license

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /