Skip to content

dsw/proquint

master
Switch branches/tags
Code

Latest commit

…I was asserting decoded ints to be at most Integer.MAX_VALUE, which in Java is _signed_ MAX_VALUE;

fix this by (1) using longs as my unsigned ints (Java does not have
unsigned ints) and further (2) by removing the gratuitous check
against Integer.MAX_VALUE;

 * as suggested by a user, add zuzuz-zuzuz as a test input proquint as
   doing so exhibits the above bug;

also simplify the decoding by shifting then masking;

also audit/cleanup the regression test scheme generally:

 * fix regression test to 'diff -u correct expected' so changes to the
   output show up as the addition of something new, rather than the
   removal of something old and further are output in the unified diff
   format;

 * add the script revcp which is handy for accepting regression test
   output;
f9ca581

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                              Proquints:
                    Identifiers that are Readable,
                     Spellable, and Pronounceable

                         Daniel S. Wilkerson

Welcome!

Please see the article on proquints: http://arXiv.org/html/0901.4016;
A local copy is in proquint-proposal.txt and this can be converted to
proquint-proposal.gen.html by typing "make".

For the C and Java implementations: run "make clean all check" to
build and check.  After that you can run "make demo" for a simple demo
and "make examples" for more examples.

Local implementations by Daniel S. Wilkerson:

 * C implementation: proquint.c converts between proquint, hex, and
   decimal strings.

 * Java implementation: Proquint.java converts between proquint, hex,
   and decimal strings.

Local implementations by others:

 * Python implementation by Ruslan Shestopalyuk: converts between
   proquint, hex, decimal and IPv4 address strings. Installs a script
   'proquint', which can be used to convert between above
   representations via command line (see python/README.md)

 * Javascript implementation by Luděk Rašek: The code is in
   js/proquint.js.  Try it in js/proquint.html for values of arbitrary
   length.  Demo is accessible as github page:
   http://l-ra.github.io/proquint/js/proquint.html

Remote implementations by others:

 * Elixir implementation by Khaja Minhajuddin: Converts binaries to
   proquint encoded strings, Decodes proquint encode strings to
   binaries. Implementation can be found at
   https://hexdocs.pm/proquint/Proquint.html
   
 * Elm implimentation:
   - Install with `elm install michaelglass/proquint`.
   - Docs are here:
   https://package.elm-lang.org/packages/michaelglass/proquint/latest/Proquint.


 * Perl implementation by Mark Lawrence: Can also be installed from
   CPAN with cpan Proquint (or +cpanm+ if one has it installed).
   https://github.com/mlawren/p5-Proquint
   
 * Rust implementation by Christian Blades: Crate at
   https://crates.io/crates/proquint, source at
   https://github.com/christian-blades-cb/proquint-rs
   
 * Go implementation by Nat Welch: https://github.com/icco/proquint

See License.txt for copyright and terms of use.

The proquint home is http://github.com/dsw/proquint.

History:

 * 9 January 2009: initial release
 * 8 April 2012: add Java implementation
 * 30 December 2015: add Javascript implementation by Luděk Rašek
 * 3 October 2017: add Python implementation by Ruslan Shestopalyuk

Enjoy.

  -- Daniel

About

Proquints: Identifiers that are Readable, Spellable, and Pronounceable.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published