Most of these are ripped from the java world, since any other feature I would 
want are more ORM related, which I'm not sure if they are within the scope of 
your project.

  1. Automatic catching of any exception that is thrown while executing a 
handler proc (a proc that handles an HTTP request, also called "controller" in 
the repository pattern of Spring) and logging it and allowing that to be easily 
customized per exceptiont type.
  2. Automatic ways to receive and validate received JSON/Form-Data. Basically 
while receiving I'd love it if the body that I receive is automatically 
converted to a specific data-type. That may already be doable to an extent 
through the chosen data-types, though I'm not sure if I can express that a 
value bust be either e.g. 1, 3 or 5. Basically enabling arbitrary validation 
logic that I just need to annotate the type that the body should be converted 
to with would be nice. Annotations here would be done via pragma I guess, so 
stuff like {.notBlank.} for strings, {.higherThan/lowerThan.} for numbers etc. 
for example could be neat. Checkout Spring Validation for more inspiration here
  3. Shipping a simple way to do encryption and hashing. I tried to simplify 
that myself for hashing for the couple algo's I use myself in the nimword 
package.
  4. Shipping an ORM that provides me with async and sync ways to perform 
queries between at least sqlite and postgres, ideally also some way to do 
queries to mongo and maybe even elasticsearch. In order to limit scope, ideally 
the ORM itself only tries to take care of simpler queries and enables me to 
write custom queries myself e.g. when it comes to recursive SQL, interacting 
with fts5 tables or the like. That ORM ideally also provides "signals", 
basically enables you to execute other procs/queries whenever an entry from a 
specific table is created/updated/deleted, should provide hooks for both before 
and after the actual creation.
  5. Shipping a database migration tool that also enables custom migrations 
(see Django migrations)
  6. Provide a simple way to load config values at _runtime_ from some kind of 
file that does not get compiled into the application. Parse that data into a 
nim object on startup and provide the object that holds those config values to 
every handler proc at runtime. Ideally that object is read-only and statically 
typed and the server crashes on startup if the config file is missing any 
config entries (and provides warning logs if there are superfluous config 
entries). Also, ideally those config values can also be provided with 
validation e.g. "X must be a string value and not be an empty string" or "X 
must be a string value and be at least n characters long but no longer than m 
characters", that kind of stuff.


Reply via email to