Skip to content

Getting Started

Installation

Add to your Cargo.toml:

[dependencies]
konjingjing = "0.2"

Or use cargo:

cargo add konjingjing

Requires Python 3.9+:

pip install konjingjing
npm install konjingjing

Or with other package managers:

yarn add konjingjing
pnpm add konjingjing
bun add konjingjing
npm install konjingjing-wasm

Or use directly from a CDN:

<script type="module">
  import init, { verifyId } from 'https://unpkg.com/konjingjing-wasm/konjingjing_wasm.js';
  await init();
</script>

Basic Usage

Validating an ID

The verify_id function checks if a Thai National ID has a valid checksum:

use konjingjing::verify_id;

assert!(verify_id("1112034563562"));   // Valid
assert!(!verify_id("1112034563563"));  // Invalid checksum
assert!(!verify_id("11120345635"));    // Too short
from konjingjing import verify_id

verify_id("1112034563562")   # True
verify_id("1112034563563")   # False (invalid checksum)
verify_id("11120345635")     # False (too short)
import { verifyId } from 'konjingjing';

verifyId("1112034563562");   // true
verifyId("1112034563563");   // false (invalid checksum)
verifyId("11120345635");     // false (too short)
import init, { verifyId } from 'konjingjing-wasm';

await init();  // Required once before using any function

verifyId("1112034563562");   // true
verifyId("1112034563563");   // false (invalid checksum)
verifyId("11120345635");     // false (too short)

Extracting ID Information

The get_id_meaning function extracts demographic information:

use konjingjing::get_id_meaning;

if let Some(meaning) = get_id_meaning("1101700230703") {
    println!("Person type: {} ({})",
        meaning.person_type.description_en,
        meaning.person_type.code);

    if let Some(province) = meaning.province {
        println!("Province: {} ({})", province.name_en, province.code);
    }

    println!("Valid checksum: {}", meaning.is_valid);
}
from konjingjing import get_id_meaning

meaning = get_id_meaning("1101700230703")
if meaning:
    print(f"Person type: {meaning['person_type_description_en']}")
    print(f"Province: {meaning['province_name_en']}")
    print(f"Valid: {meaning['is_valid']}")
import { getIdMeaning } from 'konjingjing';

const meaning = getIdMeaning("1101700230703");
if (meaning) {
    console.log(`Person type: ${meaning.personTypeDescriptionEn}`);
    console.log(`Province: ${meaning.provinceNameEn}`);
    console.log(`Valid: ${meaning.isValid}`);
}
import init, { getIdMeaning } from 'konjingjing-wasm';

await init();

const meaning = getIdMeaning("1101700230703");
if (meaning) {
    console.log(`Person type: ${meaning.personTypeDescriptionEn}`);
    console.log(`Province: ${meaning.provinceNameEn}`);
    console.log(`Valid: ${meaning.isValid}`);
}

Error Handling

Both functions handle invalid input gracefully:

  • verify_id returns false for invalid input
  • get_id_meaning returns None/null for invalid input

Invalid input includes: - Non-13-digit strings - Strings containing non-digit characters - Empty strings

Comments