000000000000000000      000000000000000000      000000000000000000      0000000


    000000000000000000      000000000000000000      000000000000000000           00
    00              00                      00                      00           00
    00              00                      00                      00           00
    000000000000000000      000000000000000000                      00           00
                                                                    00
                                                                    00
                                                                    00



    Implementation status                Product     Pricing      Demo      Blog
    .                                    =======     .
    .                                                .
    . Backend            [==========]                . Free  : $0
    . Tree visualization [==========]                . Team  : $10/user/month
    . Instant preview    [========= ]                . Cloud : $10/user/month
    . Markdown rendering [========= ]
    . Code view          [=====     ]
    . Private repos      [=====     ]
    . Multi-way diff     [===       ]
    . Ctrl+K search      [==        ]
    . History            [=         ]
    . Branch selection   [=         ]
    . Branch comparison  [=         ]
    . Reliability        [=         ]
    . Monitoring         [          ]
    . / search           [          ]
    . User auth          [          ]
    . Cloud              [          ]



    What is Asqi?
    -------------

    Asqi is a codebase explorer designed to help you navigate and understand Git
    projects. If this sounds interesting, you should check out the demo server,
    which has several open-source repositories already indexed.


    Can I use it?
    -------------

        +----------------------------+                                         .
        | Can you self-host a Docker |    no
        | service?                   |----------+
        +----------------------------+          |                              .
                      |                         V
                      |                   +------------------------------------+
                      |                   | Soon (TM): you'll want Asqi Cloud, |
                      | yes               | $10/user/month, ships in Q3        |
                      |                   +------------------------------------+
                      |
                      V
        +-------------------------------+                                      .
        | Do people need credentials to |   no
        | clone/fetch your code?        |-------+
        +-------------------------------+       |                              .
                      |                         V
                      |                 +--------------------------------------+
                      |                 | Absolutely! Use Asqi Free and enjoy. |
                      | yes             | Asqi will always be free for source- |
                      |                 | available projects.                  |
                      |                 +--------------------------------------+
                      |
                      |
                      V                                                        .
        +-------------------------------+
        | What's your take on software  |    no
        | piracy?                       |---------+                            .
        +-------------------------------+         |
                      |                           V
                      |                    +-----------------------------------+
                      |                    | Soon (TM): you'll want Asqi Team, |
                      | never              | $10/user/month, ships June 2024   |
                      |                    +-----------------------------------+
                      |
                      V
        +--------------------------------------------------+
        | Great! Well be sure not to set the license key   |
        | to ONE_BOOTLEG_PLEASE to avoid any piracy before |
        | we get billing set up.                           |
        +--------------------------------------------------+


    How can I use it?
    -----------------

    From a technical perspective, you can do pretty much anything you are
    able to, including:

    + Connecting to your server in arbitrary ways
    + Using any Asqi outputs for any technical purpose
    + Inspecting/stealing any plaintext files in the Asqi container image (easy)
    + Reverse-engineering any files in the Asqi container image (difficult)
    + Reverse-engineering Asqi's database/search indexes (difficult)
    + Reverse-engineering the client/server RPC (moderate; hint: zstd binary,
      custom msgpack-style codec, will document soon)
    + Snooping the DOM/websocket to grab data (moderate)
    + Pen-testing your own server (please let me know before you pentest Cloud)
    + Basically anything else a curious programmer might want to do
    + Breaking DRM to generate your own license key or hacking the binary to
      bypass the license-check logic (difficult)
    + Using that license key or a hacked binary to get Asqi Team for free
      (moderate/difficult)
    + Reusing parts of Asqi to build competing or non-competing products -- but
      see the business perspective

    Asqi Cloud is a bit different: you can do non-disruptive things (which is a
    lot because we have decent isolation) but we may disable your Cloud account
    if you end up causing problems for other people.

    If you want to use Asqi's internal data for things, let me know and I'll
    prioritize creating a developer API that will be much easier to consume than
    the custom binary format in the DB. You can also consume the DB directly if
    you want to, but you'll be decoding a custom format and potentially
    reimplementing the custom search engine which might not be convenient.


    From a business perspective, you can use/misuse Asqi for any purpose
    that is consistent with its licensing. That means:

    + You can (mis)use Asqi Free in any way on any source-available code
    + You can (mis)use Asqi Team in any way on any code anywhere, provided that
      the end user has an Asqi Team license

    For example, suppose you build a project that grabs the Asqi binary from the
    container image and builds a code database that you then serve through a
    different frontend. If you distribute your project to other people, anyone
    using it on source-available code will be able to use Asqi Free at no cost;
    and anyone using it on private code will need an Asqi Team license key to
    power the backend.

    (If you're doing things where #users/month doesn't make sense, let me know
    and I'll try to come up with a usage-based alternative, like $X/git-GB/month
    or something.)


    Privacy policy
    --------------

    I log barely enough to determine whether the server has crashed. Here's what
    these logs look like:

      
      rpc repo:status {"id":7,"r":"slow-gitlab"} 63 110 31766204 0.01kB/s 1596.85kB/s
      rpc repo:status {"id":47,"r":"medium-numpy"} 63 355714 10888910 7.14kB/s 218.52kB/s
      rpc blob:content {"id":60,"r":"fast-libssh","i":"e6a4227e9ced83f2bc699b17468f8db605af9394"} 37057 24831 1832690 0.52kB/s 38.14kB/s
      rpc repo:status {"id":5,"r":"medium-postgres"} 63 62 6951 0.01kB/s 0.61kB/s
      rpc blob:content {"id":61,"r":"fast-libssh","i":"1f0a71f3016561cb0335adc325a4d9484525ac7a"} 1029 24905 1833721 0.52kB/s 38.00kB/s
      rpc blob:content {"id":62,"r":"fast-libssh","i":"227e20ab43a68cb035c2ba04f7915865bd2aee9b"} 1236 24979 1834959 0.51kB/s 37.78kB/s
      rpc repo:heads {"id":6,"r":"medium-postgres"} 8232324 92 8239276 0.01kB/s 686
      

    We do not collect nor track:

    + Timestamps (though we probably should)
    + IP addresses
    + Cookies/session identifiers (other than "you're on websocket X")
    + Anything else that tells us who you are

    This will probably change, but not very much. Check back to this section for
    updates.


    Supported languages
    -------------------

    Asqi can provide file-level indexing for everything, and it provides
    semantic indexing for:

    + C/C++
    + Java
    + Go
    + Rust
    + JavaScript/TypeScript
    + Python


    Technical changelog
    -------------------

    Changes to deployed images or infrastructure:

    + 2024.0530.1904 MDT: pushed a new asqi-beta image that auto-creates
      directories; this should make Asqi Free work as
      advertised
    + 2024.0530.1845 MDT: restarted the demo server after a crash