string.is
Miscellaneous
About this project
string-is
string.is is an open-source, privacy-friendly toolkit for developers. You can see it in action here.
string.is is an opinionated conversion tool, with the following goals:
- It should be open-source.
- It should not set any cookies.
- It should have a strict Content Security Policy.
- It should be extremely opinionated about dependancies, and only use well-known, well-supported libraries.
- It should try to detect the format of the input, and intelligently choose output options.
Install dependencies:
yarn install
Set up git hooks:
yarn husky install
Run the development server:
yarn dev
... and then open http://localhost:3000 in your browser.
To run all linting checks, type checks, tests, and build for production:
yarn all
Running with Docker
Build the docker image:
yarn docker-build
or
docker build -t string-is .
... and then run it:
yarn docker-run
or
docker run -p 3000:3000 string-is
Alternatively you can build and run it with docker-compose
:
docker-compose up
... or even run it directly from Docker Hub:
docker run -p 3000:3000 daveperrett/string-is:latest
Currently linux/arm64
and linux/amd64
platforms are supported.
Adding a new converter
The src/lib
folder contains most of the conversion logic, and is pure TypeScript, with no React knowledge required.
src/lib/identities
contains identifiers that take an input string and return the confidence level that the input is in a particular format. For example,JwtIdentifier
returns a number indicating the confidence level (between 0 and 100) that a given input string is a JWT token.src/lib/inputs
contains parsers that load strings from different formats. For example, theJsonInput
parses a JSON string and returns an object.src/lib/outputs
takes parsed data and formats it into a specific output format. For example,JavaScriptOutput
takes a JavaScript string, formats it according to the formatting options provided, and returns the result.src/lib/converters
are input → output pairs - the glue that performs a conversion between formats. For example,CsvToJsonConverter
takes a CSV
Technologies & License
AGPL-3.0
Node.js
Quick Deploy
Deploy this project to cloud platforms with one click