urlshortener-rs alternatives and similar packages
Based on the "Web programming" category.
Alternatively, view urlshortener-rs alternatives based on common mentions on social networks and blogs.
-
gutenberg
A fast static site generator in a single binary with everything built-in. https://www.getzola.org -
burn
DISCONTINUED. Burn is a new comprehensive dynamic Deep Learning Framework built using Rust with extreme flexibility, compute efficiency and portability as its primary goals. [Moved to: https://github.com/Tracel-AI/burn] -
License
DISCONTINUED. Tiny, no-nonsense, self-contained, Tensorflow and ONNX inference [Moved to: https://github.com/sonos/tract] -
rust-musl-builder
Docker images for compiling static Rust binaries using musl-libc and musl-gcc, with static versions of useful C libraries. Supports openssl and diesel crates. -
heroku-buildpack-rust
A buildpack for Rust applications on Heroku, with full support for Rustup, cargo and build caching. -
url-crawler
DISCONTINUED. Rust crate for configurable parallel web crawling, designed to crawl for content
InfluxDB - Power Real-Time Data Analytics at Scale
Do you think we are missing an alternative of urlshortener-rs or a related project?
README
urlshortener-rs
A very simple urlshortener for Rust.
This library aims to implement as much URL shortener services as possible and to provide an interface as minimal and simple as possible. For easing pain with dependency hell, the library provides request objects since 0.9.0 version which can be used for performing requests via user http-client library.
Implementations
Currently the following URL shorteners are implemented:
With authentication:
goo.gl
bit.ly
kutt.it
(supports self hosting)
Without authentication:
bn.gy
is.gd
v.gd
bam.bz
fifo.cc
tiny.ph
tny.im
s.coop
bmeo.org
hmm.rs
url-shortener.io
The following services are supported, but are discouraged from use, due to restrictions such as rate limits:
tinyurl.com
psbe.co
rlu.ru
sirbz.com
hec.su
abv8.me
nowlinks.net
Usage without "client" feature
You can make a Request
object without "client" feature only via provider functions:
extern crate urlshortener;
use urlshortener::providers::{Provider, self};
fn main() {
let long_url = "https://google.com";
let key = "MY_API_KEY";
let req = providers::request(long_url, &Provider::GooGl { api_key: key.to_owned() });
println!("A request object for shortening URL via GooGl: {:?}", req);
}
Usage with "client" feature
Without authentication
extern crate urlshortener;
use urlshortener::client::UrlShortener;
fn main() {
let us = UrlShortener::new().unwrap();
let long_url = "https://google.com";
println!("Short url for google: {:?}", us.try_generate(long_url, None));
}
With authentication (Goo.Gl)
extern crate urlshortener;
use urlshortener::{ client::UrlShortener, providers::Provider };
fn main() {
let us = UrlShortener::new().unwrap();
let long_url = "https://google.com";
let key = "MY_API_KEY";
println!("Short url for google: {:?}", us.generate(long_url, Provider::GooGl { api_key: key.to_owned() }));
}
Combined (Goo.Gl + Is.Gd)
extern crate urlshortener;
use urlshortener::{ client::UrlShortener, providers::Provider };
fn main() {
let us = UrlShortener::new().unwrap();
let providers = vec![
Provider::GooGl { api_key: "MY_API_KEY".to_owned() },
Provider::IsGd,
];
let long_url = "https://rust-lang.org";
println!("Short url for google: {:?}", us.try_generate(long_url, Some(providers)));
}
License
This project is licensed under the MIT license.
*Note that all licence references and agreements mentioned in the urlshortener-rs README section above
are relevant to that project's source code only.