mirror of
https://github.com/j-a-s-d/xam
synced 2026-01-15 12:11:32 +00:00
No description
| docs | ||
| src | ||
| tests | ||
| LICENSE | ||
| README.md | ||
| test.sh | ||
| xam.nimble | ||
xam
a multipurpose productivity library for nim
MOTIVATION
"If you want more effective programmers, you will discover that they should not waste their time debugging, they should not introduce the bugs to starth with."
- Edger Dijkstra, The Humble Programmer, 1972
CHARACTERISTICS
- no external dependencies (just nim)
- self-documenting api (descriptive long proc names)
- full unit testing
- markdown documentation
based on my Java Ace project https://github.com/j-a-s-d/ace
MODULES
All the following modules are included in xam (no extra includes are required):
xam, general featuresansi, ansi related routinesbytes, bytes related constantscallbacks, common callback declarationscctlds, country code top-level domains related constantschars, chars related constantscurrencies, currencies related constantsdirectories, directories related routinesexceptions, exceptions related routinesfiles, files related routineshex, hex related constantshgtlds, historical generic top-level domains related constantshtml, html related constants and routinesjsons, json related constants and routineslanguages, languages related constantslooping, looping related routinesmaths, math related constants and routinesmultiplatform, multiplatform aliases (only harmless ones)nimlang, nimlang related constants and routinessemanticversion, semantic version objectseqs, sequences related routinesset, sequences related routinessizes, sizes related constants and routinesstrings, strings related constants and routinesstructures, structures related routinestemp, temporary files related constants and routinestime, time related constants and routines
RELATED
Also check my projects which use xam as a dependency:
rodster, my application framework for nimwebrod, my http server for nimpreprod, my customizable preprocessor for nim
HISTORY
- 13-03-23 [1.9.9]
- added
charshex value constants - added
stringsgetLastChar routine - added
multiplatformcommon native types converters - added
multiplatformpascal-like deprecated, experimental, platform and unimplemented templates
- added
- 25-02-23 [1.9.8]
- added
xamused template - added
htmlHTML_TAGS_COMMAND constant - added
htmlHTML_ALL_TAGS and HTML_VOID_TAGS constant sequences - added
multiplatformracket-like display and displayln output aliases - added
multiplatformhaskell-like putStr output alias - improved
multiplatformprint, println, writeln, putStrLn, puts and say aliases implementation
- added
- 21-02-23 [1.9.7]
- added
timeDATETIME_FORMAT_MMDDYYYY, DATETIME_FORMAT_HHMMSS, DATETIME_FORMAT_MMDDYYYY_HHMMSS, DATETIME_FORMAT_DDMMYYYY_HHMMSS and DATETIME_FORMAT_YYYYMMDD_HHMMSS constants - added
filesstripFileExtension and extractFilenameWithoutExtension routines - added
multiplatformpascal-like splitString split alias - improved
stringshasText routine implementation
- added
- 15-02-23 [1.9.6]
- added
mathsconstrain routine - added
stringsextractInBetween routine - added
currenciesconstants
- added
- 10-02-23 [1.9.5]
- added
mathsfloatInterpolate routine - added
mathsVALUE_INVERSE_PI, VALUE_INVERSE_SQRTPI and VALUE_INVERSE_SQRT3 constants - added
cctldsconstants - added
hgtldsconstants
- added
- 11-10-22 [1.9.4]
- added
mathsVALUE_LOG2E, VALUE_LNPI, VALUE_SQRTPI, VALUE_SQRT3, VALUE_INVERSE_PHI, VALUE_EULER_MASCHERONI and VALUE_ALPHA constants - added
htmlHTML_TAGS_BLINK, HTML_TAGS_BGSOUND, HTML_TAGS_CONTENT, HTML_TAGS_ISINDEX, HTML_TAGS_KEYGEN, HTML_TAGS_LISTING, HTML_TAGS_MARQUEE, HTML_TAGS_MENU, HTML_TAGS_MENUITEM, HTML_TAGS_MULTICOL, HTML_TAGS_NEXTID, HTML_TAGS_NOBR, HTML_TAGS_NOEMBED, HTML_TAGS_PLAINTEXT, HTML_TAGS_RB, HTML_TAGS_RTC, HTML_TAGS_SHADOW, HTML_TAGS_SPACER and HTML_TAGS_XMP constants - added
multiplatformswift typealias-like alias
- added
- 19-07-22 [1.9.3]
- added
seqsprepend routine - added
multiplatformzig unreachable-like code marker alias
- added
- 16-06-22 [1.9.2]
- added
jsonswrapInJArray overloads supporting native types - added
jsonsJObjectBuilder setAll and putAll methods supporting json object - added
jsonsJObjectBuilder constructor overloads - added
jsonsJArrayBuilder addAll and appendAll methods supporting native types - added
jsonsJArrayBuilder addValues and appendValues methods supporting json array - added
jsonsJArrayBuilder constructor overloads
- added
- 24-05-22 [1.9.1]
- added
exceptionsExceptionRef type - changed
seqspeek and slice methods not to require a var sequence to operate
- added
- 21-05-22 [1.9.0]
- added
seqsdate time and json node sequences definitions and constructors - added
callbacksdate time callback definition - changed "namespaced let code" constants to "namespaced regular const" to allow optionally declaration (ex. let ALL_HTML_COLORS*: tuple = HTML_COLORS) of the let
- added
multiplatformdelphi/cppbuilder/fpc-like FreeAndNil alias - added
multiplatformc/cpp/etc-like argc arguments count and argc arguments vector alias - added
multiplatformc#/javascript/swift/powershell/etc-like null coalescing operator
- added
- 17-05-22 [1.8.1]
- added
filesextractFileExtension and checkFileExtension routines - added
directoriesensureDir routine
- added
- 04-05-22 [1.8.0]
- added
structuresroutines - added
languagesconstants
- added
- 25-04-22 [1.7.4]
- added
jsonssize fluent methods to JsonArrayBuilder and JsonObjectBuilder
- added
- 24-04-22 [1.7.3]
- added
jsonsensureJsonNode routine - added
jsonsaddAll and appendAll methods for JsonArrayBuilder supporting varargs[JsonNode] - improved
sizesimplementation
- added
- 02-03-22 [1.7.2]
- added
filesfilesExist, filesDontExist and removeFiles routines - added
directoriesroutines
- added
- 23-01-22 [1.7.1]
- added
semanticversionisValidSemanticVersionString routine
- added
- 15-01-22 [1.7.0]
- added
setscommon types definitions - added
stringsSTRINGS_BACKTICK and STRINGS_DIAERESIS constants
- added
- 03-01-22 [1.6.2]
- added
xamexchange template - inlined
stringspiped, tabbed, spaced and lined routines
- added
- 02-01-22 [1.6.1]
- added
xamwithIt template - added
stringspiped, tabbed, spaced and lined routines
- added
- 26-12-21 [1.6.0]
- added
xamnoop, truthy and falsy dummy functions - added
nimlangconstants and routines - added
mathVALUE_TAU constant - added
callbacksvoid proc callback definitions - added
seqsappend, isEmpty and hasContent routines - added
stringsstripLeft, stripRight, isEmpty and areEmpty routines - added
multiplatformruby-like unless template - added
multiplatformpyhton/boo/gdscript-like pass template - added
multiplatformsome pascal/c#/js-like string manipulation templates
- added
- 28-08-21 [1.5.0]
- added
timeconstants and routines - added
chronometerintotime - included
datetimeintotime
- added
- 01-08-21 [1.4.2]
- added
jsonsensureJObject and ensureJArray routines
- added
- 24-07-21 [1.4.1]
- added
semanticversionisMajorNewerThan, isMinorNewerThan and isPatchNewerThan routines
- added
- 14-07-21 [1.4.0]
- added
callbackstaker and treater callback definitions - added
loopingforever, times and json array each/meach templates - added
multiplatformtype aliases - added
seqstreat routine - added
stringsbetween routine
- added
- 11-07-21 [1.3.0]
- added
callbacksjson node callback definition - added
seqsremove routines - added
seqsconcrete-type sequence constructors - added
stringscsv routines - improved the markdown documentation for
jsonsandseqs
- added
- 30-05-21 [1.2.0]
- added
filesroutines
- added
- 26-05-21 [1.1.1]
- added
exceptionsthrow procedure overload with empty message - added
exceptionstryIt template
- added
- 22-05-21 [1.1.0]
- added
tempconstants and routines - added
semanticversionequalsTo, isNewerThan and isOlderThan string overloads
- added
- 23-04-21 [1.0.1]
- adjusted the primary source structure since
nimble checkdid not recognized the includes
- adjusted the primary source structure since
- 06-04-21 [1.0.0]
- improved the markdown documentation for
multiplatformandjsons - added
multiplatformmore "nil constant"-like aliases
- improved the markdown documentation for
- 05-04-21 [0.9.2]
- added test.sh shell script file
- added "namespaced let code" constants for all "strongnamed const data" constants in the packages
ansi,bytes,chars,datetime,hex,html,sizesandstrings
- 04-04-21 [0.9.1]
- improved the markdown documentation for
jsons - refactored
ansiinto individual includes
- improved the markdown documentation for
- 03-04-21 [0.9.0]
- improved the markdown documentation for
jsons - added
jsonsmodel and builders clear routines - added
jsonsmodel len routine - added
jsonsobject builder put routines
- improved the markdown documentation for
- 31-03-21 [0.8.1]
- improved the markdown documentation for
seqs - improved
seqsjs stack-like slice support
- improved the markdown documentation for
- 30-03-21 [0.8.0]
- improved the markdown documentation for
seqs - added
seqscommon types definitions - added
seqscsv routines - added used pragma to all the templates provided
- improved the markdown documentation for
- 28-03-21 [0.7.3]
- improved the markdown documentation for
semanticversionandjsons - added
loopingmeach template
- improved the markdown documentation for
- 26-03-21 [0.7.2]
- improved the markdown documentation for
xam,ansi,bytes,callbacks,chars,datetime,exceptions,hex,html,looping,math,sizesandstrings - added
exceptionsthrow routine
- improved the markdown documentation for
- 21-03-21 [0.7.1]
- added the markdown documentation structure
- added
multiplatformc/pascal/basic-like string concatenation template
- 15-03-21 [0.7.0]
- added
xamuse template - refactored
xam - added
multiplatformshutdown routines - added
multiplatformpascal-like variable assignation template
- added
- 08-03-21 [0.6.0]
- added
xamisUndefined, inCompileTime and inRunTime templates - refactored
multiplatforminto individual includes - added
multiplatformintrospection aliases
- added
- 07-03-21 [0.5.0]
- added
jsonsserialization and deserialization in model - added
jsonsmandatory untyped fields in model
- added
- 03-03-21 [0.4.2]
- added
multiplatformsugar's fat arrow functions syntax reexport - added
xaminlined template
- added
- 28-02-21 [0.4.1]
- added
jsonsfluent api for model - refactored
xaminto individual includes - refactored
seqsinto individual includes - refactored
stringsinto individual includes
- added
- 27-02-21 [0.4.0]
- refactored
hmtlinto individual includes
- refactored
- 26-02-21 [0.3.3]
- added
jsonsloadJsonNodeFromFile and saveJsonNodeToFile routines - added
exceptionscatch routine
- added
- 23-02-21 [0.3.2]
- added
jsonsjmeInvalidNode error for model
- added
- 22-02-21 [0.3.1]
- refactored
mathsinto individual includes - included
parsingintomaths - added
jsonstryParseJson routine
- refactored
- 21-02-21 [0.3.0]
- refactored
jsonsinto individual includes - published
jsonsobtainNode* routines - added
jsonsincremental builders for objects and arrays - added
jsonsobjects modelling validation
- refactored
- 14-02-21 [0.2.1]
- added
exceptionssilent routine - added
multiplatformc/cpp-like boolean operators templates
- added
- 13-02-21 [0.2.0]
- added
jsonsconstants and routines
- added
- 08-02-21 [0.1.4]
- added
datetimeconstants and routines - added
loopingtemplates - added
multiplatformgolang-like shorthand variable declaration template
- added
- 06-02-21 [0.1.3]
- added
seqstackextract routine - improved
seqstackdrop routine - improved
xampragmas
- added
- 04-02-21 [0.1.2]
- added
mathscommon degrees constants
- added
- 02-02-21 [0.1.1]
- added
mathsfloatIsNaN routine
- added
- 28-01-21 [0.1.0]
- first public release
- 14-01-21 [0.0.1]
- started coding