Crates.io | connection-string |
lib.rs | connection-string |
version | 0.2.0 |
source | src |
created_at | 2020-10-05 14:41:18.945179 |
updated_at | 2023-03-31 13:49:25.021964 |
description | Connection string parsing in Rust (and WebAssembly) |
homepage | |
repository | https://github.com/prisma/connection-string |
max_upload_size | |
id | 296320 |
size | 69,718 |
$ cargo add connection-string
The crate is available in npm as @pimeys/connection-string
. Usage patters try
to follow the Rust version as close as possible. Please see the Rust
docs for more information.
JDBC:
const j = new JdbcString("jdbc:sqlserver://localhost\\INSTANCE:1433;database=master;user=SA;password={my_password;123}");
console.log(j.server_name()); // "localhost"
console.log(j.port()); // 1433
console.log(j.instance_name()); // "INSTANCE"
console.log(j.get("database")); // "master"
console.log(j.get("password")); // "my_password;123" (see escaping)
console.log(j.keys()); // ["database", "user", "password"]
console.log(j.set("password", "a;;new;;password")); // "my_password;123" (returns the old value, if available)
// "jdbc:sqlserver://localhost\INSTANCE:1433;user=SA;database=master;password=a{;;}new{;;}password"
console.log(j.to_string())
ADO.net:
const a = new AdoNetString("server=tcp:localhost,1433;user=SA;password=a{;;}new{;;}password");
console.log(a.get("password")); // a;;new;;password
console.log(a.set("user", "john")); // "SA" (returns the old value, if available)
// "server=tcp:localhost,1433;user=john;password=a{;;}new{;;}password"
console.log(j.to_string())
This crate uses #![deny(unsafe_code)]
to ensure everything is implemented in
100% Safe Rust.
Want to join us? Check out our "Contributing" guide and take a look at some of these issues:
The build procedure and dependencies are defined in the provided flake.nix file. Please install the unstable Nix with flakes support (Linux, macOS).
The WASM module can be built with:
nix build
This creates a link result
to the current directory, containing a NodeJS
package with the Rust code compiled as WASM bytecode.
Run the tests with the nix subcommand:
nix run .#test
The updatePackageVersion
command changes the package version to the Rust Cargo.toml
and
JavaScript package.json
at the same time:
nix run .#updatePackageVersion 0.1.14
Don't forget to add the tag before publishing the library:
git tag v0.1.14
The publishing can be done separately or together with the publish
command:
nix run .#publishRust
nix run .#publishJavascript
or
nix run .#publish
Please be sure you have the corresponding publishing rights in crates and npmjs.