Skip to main content

Comparison with Alternatives

AspectPithosLodashes-toolkitRemedaRadashRamdamoderndash@antfu/utilsEffect
TypeScriptFirstAdded afterFirstFirstFirstAddedFirstFirstFirst
ImmutabilityDefaultMixedDefaultDefaultDefaultDefaultDefaultDefaultDefault
Invalid inputThrowSilentThrowThrowMixedSilentMixedMixedEffect
Data paradigmFirstFirstFirstDualFirstLastFirstFirstPipe
Tree-shakableYeslodash-esYesYesYesYesYesYesYes
Dependencies000000000
Result monadcheckmark (Zygos)crosscrosscrosscrosscrosscrosscrosscheckmark
Validationcheckmark (Kanon)crosscrosscrosscrosscrosscrosscrosscheckmark
FP-orientedPragmaticNoNoYesNoYesNoNoYes

Invalid input behavior:

  • Throw = Fails fast with an exception on invalid input
  • Silent = Returns undefined/null silently (can hide bugs)
  • Mixed = Depends on the function
  • Effect = Returns an error type (no exceptions)

What Differentiates Pithos

  1. Complete ecosystem: Utilities + Validation + Error handling
  2. Integrated Result pattern: Zygos for functional error handling
  3. Consistency: Unified API across all modules
  4. Greek mythology: Memorable naming and storytelling

Checklist for New Functions

Before adding a function to Arkhe/Pithos:

  • Real need: Is it really useful? Not already native in ES2020+?
  • TypeScript-first: Inferred types, no any
  • Immutable: Doesn't modify arguments
  • Input validation: Throw on invalid input
  • Complete TSDoc: Description, params, returns, throws, examples
  • 100% tests: Complete coverage, edge cases included
  • Benchmark: No performance regression
  • Tree-shakable: Granular export

Possible Future Evolutions

FeatureStatusNotes
Lazy evaluationTo studyFor chained operations
Web APIs extensionsPlannedFetch, Storage, etc.
Async iteratorsPlannedGenerators and AsyncGenerators

Related