Giter VIP home page Giter VIP logo

cocalc's Introduction

logo CoCalc

Collaborative Calculation in the Cloud

CoCalc offers collaborative calculation in the cloud. This includes working with the full (scientific) Python stack, SageMath, Julia, R, Octave, and more. It also offers capabilities to author documents in LaTeX, R/knitr or Markdown, storing and organizing files, a web-based Linux Terminal, communication tools like a chat, course management and more.

Website

Very easy install of CoCalc on your computer

You can easily use CoCalc on your own computer for free by running a Docker image.

History

CoCalc was formerly called SageMathCloud. It started to offer way more than just SageMath and hence outgrew itself. The name was coined in fall 2016 and changed around spring 2017.

Contributors

Current highly active contributors

  • John Jeng
  • Harald Schilly
  • Hal Snyder
  • William Stein

Past contributors

  • Greg Bard
  • Rob Beezer
  • Keith Clawson
  • Tim Clemans
  • Andy Huchala
  • Jon Lee
  • Simon Luu
  • Nicholas Ruhland
  • Todd Zimmerman

... and many others: See https://github.com/sagemathinc/cocalc/graphs/contributors

Copyright/License

The copyright of CoCalc is owned by SageMath, Inc., and the source code here is released under the GNU Affero General Public License version 3+. See the included file LICENSE.md.

None of the frontend or server dependencies of SMC are themselves GPL licensed; they all have non-viral liberal licenses. If want to host your own SMC at a company, and need a different AGPL-free license, please contact [email protected].

Trademark

"CoCalc" is a registered trademark.

ARCHITECTURE

  • Client -- javascript client library that runs in web browser
  • Load balancer/ssl -- HAproxy
  • Database -- PostgreSQL
  • Compute -- VM's running TCP servers (e.g., sage, console, projects, python3, R, etc.)
  • Hub -- written in Node.js; primus server; connects with everything -- compute servers, database, other hubs, and clients.
  • Storage -- Snapshots of project data
  • HTTP server -- Nginx

Architectural Diagram


   Client    Client    Client   Client  ...
     /|\
      |
   https://cocalc.com (primus)
      |
      |
     \|/
 HAproxy (load balancing...)HAproxy                  Admin     (monitor and control system)
 /|\       /|\      /|\      /|\
  |         |        |        |
  |http1.1  |        |        |
  |         |        |        |
 \|/       \|/      \|/      \|/
 Hub<----> Hub<---->Hub<---> Hub  <-----------> PostgreSQL <--> PostgreSQL  <--> PostgreSQL ...
           /|\      /|\      /|\
            |        |        |
   ---------|        |        | (tcp)
   |                 |        |
   |                 |        |
  \|/               \|/      \|/
 Compute<-------->Compute<-->Compute <--- rsync replication  to Storage Server, which has ZFS snapshots

Acknowledgements

Browserstack

We are grateful to BrowserStack for providing infrastructure to test CoCalc.

Development

Prerequisites

  • node
  • Postgres
  • pip install pyyaml

Installation

The following instruction don't install SMC. They're for development purposes only!

  • git clone https://github.com/sagemathinc/cocalc -- copy repo
  • cd cocalc/src
  • npm run install-all -- build
  • npm test -- run test suite (expected failures if your clock is not UTC)
  • install.py all --compute --web -- build and install some parts system-wide for development use
  • See INSTALL.md for more details.

For further options please go here.

cocalc's People

Contributors

williamstein avatar haraldschilly avatar johnjeng avatar drxyzzy avatar timothyclemansinsea avatar nicholasruhland avatar ahuchala avatar fchapoton avatar bryantpq avatar varun51194 avatar maarksman avatar swenson avatar embray avatar cloutier avatar nikolas avatar edgarcosta avatar vivekv2 avatar billpage avatar scj643 avatar riceissa avatar jasongrout avatar jlutgen avatar jdemeyer avatar rgbkrk avatar mukeshkharita avatar ohanar avatar rgaiacs avatar slel avatar simonluu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.