Isspam

Fast as light evaluator for text files to summarize specific details about the text files.

This repository contains two versions of the same algorithm.

Versions:

  • Rust (risspam) written by 12bitfloat.
  • C (isspam) written by retoor.

Building

make build

Build isspam with memory check (requires valgrind to be installed):

make valgrind

Running

Using files as parameter

./(r)isspam ./spam/*.txt
./(r)isspam ./not_spam/*.txt

Using stdin

Useful for automation. Works only on the isspam version.

cat ./spam/example_spam1.txt | ./isspam

Example output

Output example made by isspam.

File: ./spam/example_spam3.txt
Capitalized words: 39
Sentences: 20
Words: 420
Numbers: 1
Forbidden words: 15
<0:recovery>
<1:techie>
<2:https>
<3:digital>
<4:hack>
<5://>
<6:com>
<7:@>
<8:crypto>
<9:bitcoin>
<10:whatsapp>
<11:cryptocurrency>
<12:stolen>
<13:contact>
<14:understanding>
Word count per sentence: 21
Memory usage: 1 MB, 6.460 (re)allocated, 4.222 unqiue free'd, 0 in use.

Valgrind status

Valgrind output for isspam version.

Rust variant thinks it's too cool for memory checks afterwards.

Date: 2024-11-30

==58062== 
==58062== HEAP SUMMARY:
==58062==     in use at exit: 0 bytes in 0 blocks
==58062==   total heap usage: 6,490 allocs, 6,490 frees, 2,343,156 bytes allocated
==58062== 
==58062== All heap blocks were freed -- no leaks are possible
==58062== 
==58062== For lists of detected and suppressed errors, rerun with: -s
==58062== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)