Skip to content
This repository has been archived by the owner on Jan 2, 2023. It is now read-only.

Status? #4

Open
ehlersd opened this issue Nov 30, 2017 · 4 comments
Open

Status? #4

ehlersd opened this issue Nov 30, 2017 · 4 comments

Comments

@ehlersd
Copy link

ehlersd commented Nov 30, 2017

I'm looking at RethinkDB, found this via your YouTube video and wondering a few things:

  • the current state/roadmap/plans?
  • Is the codebase you used in the video all updated in this repo?
  • Is it usable/functional?
  • what do you see as missing currently that would prohibit it from really being used?
  • what's the licensing? Open Sourced (I assume?)

Thanks for your time...

@rogeriofza
Copy link

I second @ehlersd . Whats the status of the basejump project. Would really like to use this tool

@nigel-dewar
Copy link

nigel-dewar commented Feb 21, 2018

@segphault

Hi Ryan,

I'm following up this because I believe what you have produced is really significant. I realize rethinkdb perhaps didnt turn out as well commercially, but technically its a brilliant product. When faced with several nosql DBs I went through mongo, rethinkdb, documentDB from microsoft, firebase and after alot of study and consideration come back to rethinkdb. Its just the DB of choice and I truely think its great.

I'd like to know if there is any chance you might be willing to release your front end for basejump? I'd really like to make use of it.

Please consider my request.

Kind Regards

Nigel Dewar - die-hard rethinkdb zealot.

@segphault
Copy link
Owner

segphault commented Mar 5, 2018

When the company behind RethinkDB shut down suddenly last year, it left me with a lot of uncertainty about how I wanted to move forward with Basejump. I recently started working on the project again with the aim of launching a 1.0 release this year. In the interest of getting a release out sooner rather than later, I'm going to scale back some of my original ambitions a little bit.

The initial version will be missing some specific things I talked about in the video, like the visual schema editor and Swagger support. The good news is that I've had a lot of time to think about Basejump's architecture and performance. The 1.0 release will be extensible with middleware, practical to use in production at scale, and will not strictly depend on RethinkDB.

Roadmap

This is a rough overview of what Basejump will look like at launch:

  • Basejump Core
    • A lightweight, extensible framework for building API backends
    • Core middleware
      • Routing
      • JSON schema validation
      • Realtime event streams
    • Optional middleware
      • Static file serving
      • Role-based auth with JWT
    • Experimental middleware
      • GraphQL support
  • Basejump Server
    • A headless Basejump server
    • Loads routes from a declarative configuration using a JSON file
    • Includes a CLI tool for launching the server
  • Basejump Builder
    • Graphical user interface for Basejump server
    • Create routes and schemas in the UI instead of loading a configuration
    • Can optionally export a configuration file so that you can deploy your application with a headless Basejump server in production

This is a selection of features that won't make the cut for launch, but will be on the long-term roadmap:

  • Make it possible for middleware to extend the Basejump Builder user interface by serving Vue components
  • A visual editor for defining simple data models that can be used to dynamically generate JSON Schema and GraphQL schema
  • Support for exporting a fully valid Swagger file. Optional support for embedding the Swagger UI in basejump so that you can serve interactive API documentation

Current Status

The current code in master is quite stale and has a bunch of problems. The user interface that I demoed in the video has also bitrotted considerably. You can see the most recent version of the Basejump core and server code in the plugin-refactor branch. There is a completely new frontend (that is incomplete and not yet published) that is designed to work with that branch. The code is all MIT-licensed.

The code in plugin-refactor works, and it's reasonably performant thanks to some changes that I made to how it uses the vm module after conducting some benchmarking. I'm going to be making some major changes to the API that it exposes, however.

When I was figuring out how to make Basejump extensible, I was aiming for a system where the routes that Basejump Builder uses to interact with the server are generated dynamically from models defined in plugins. This approach has some shortcomings that made it difficult to pursue in practice. I'm going to remove a bunch of that code and take a more straightforward approach with a lot less magic.

Now that I've figured this out, I should be able to get to a state where at least the core and server are usable pretty soon. At that point, I'll publish the (pretty rough) code for the new frontend and get it to the point where it's usable for testing purposes.

I'd like to make development more transparent and participatory going forward, so I'll be pushing code more regularly and hopefully posting more updates as time permits. I hope that all of this helps clarify the status. I'm going to leave this issue open for feedback and further discussion.

@nigel-dewar
Copy link

nigel-dewar commented Mar 5, 2018

@segphault , Hi Ryan,

Thanks very much for your reply and HUGE THANKS for sharing your plans to continue on with this project!

And if there is any way I can help I will.

I have skills in Angular 1 to 5, Ionic, and happy to learn Vue to test out your framework. Ive spent some time with Nodejs and I fully understand role based Authn/Authz with JWT.

I speak English naturally. I'm a Kiwi living in Brisbane, Australia. I can assist by producing high quality documentation, tutorials, website content, youtube videos etc, and of course testing, or contributing on source should you ever wish for help on that.

Please let me know if there is any way I can assist Ryan,

And again, Thanks for posting on this subject. Im really excited that you want to bring this thing to life. I love what you are doing and fully behind it.

Nige. :-)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants