Try it out ---------- # Build make # Create some place to store the database mkdir /tmp/db # Load it with the default templates evapporate load /tmp/db # Starts it with scaffolding in debug mode ./appd -D -d /tmp/db # Browse to http://localhost:8080 # To quit: curl -i http://localhost:8080/quit Notes and Warnings ------------------ This framework is still very immature. More work will be coming in the near future regarding automagic object association and perhaps some authentication utility functions. (Also support for "read-only" mode, etc.) WARNING WARNING I don't know how to use BDB. It may not be properly WARNING WARNING It may not be properly writing out except on shutdown WARNING WARNING Please...help...me. Some random comments -------------------- - accessor for HDF only are provided via evapp_db objects - indexing functions are generated from magic comments in the rpc file /*^* index=structname:fieldname; */ - By default, all data types can be registered with the main engine via schema_register(ctx). This does not add validation which means that data stored may have ids which point to space ro don't adhere to other input guidelines. - any time a list or something structure needs to be stored with an object, it should get its own entry and be indexed on the parent's id. - has_many and belongs_to will be implemented as a combination of generated C and then javascript which depends on naming conventions _id and _map: -- _id will indicate a direct lookup -- _map will indicate a tiered lookup * app_settings has some stuff that will go libevapp: xsrf, scaffolding, etc - if load_default is true _default.cs files will be loaded if a template is missing. this is how scaffolding works. * all the current handlers are "generic" and will be moved to libevapp_scaffold * set/check_xsrf, set_cookie, parse_* will all be moved to libevapp_util * No authentication or access controls exist. Probably a default ACL mechanism will not be supplied. * No internal logging system is implemented yet.