code.mp
Open in
urlscan Pro
38.242.200.28
Public Scan
URL:
https://code.mp/
Submission: On November 02 via api from US — Scanned from CA
Submission: On November 02 via api from US — Scanned from CA
Form analysis
0 forms found in the DOMText Content
home faq git+ doc+ login ↑ CODEMP code multiplexer A COLLABORATIVE EDITOR PLUGIN ECOSYSTEM sign up install learn more ↓ COLLABORATIVE TO THE CORE We want to streamline and simplify remote software development. Document editing has been collaborative for years now, so why is code lagging behind? We offer a real remote collaborative experience, with all the expressiveness your editor of choice can provide. Great software is made by great teams. It's important to allow them to perform from whatever distance. Collaboration doesn't mean just synchronization. ↓ DON'T COMPROMISE ON YOUR EDITOR With codemp you no longer need to conform to your colleague's choice of editor to cooperate. Simply install the plugin in your IDE of choice, and work together with others on any compatible system! We natively support a growing number of text editors and IDEs, and offer developers tooling to easily integrate new ones. Install Now ↓ EXTENSIBLE BY DESIGN codemp is Open Source Software: it strives to be a full ecosystem for collaborative remote development. We ship a native Rust library, as well as a growing list of ready-to-use bindings in many other languages. Can't find a plugin for your editor? Integrating codemp with your IDE is easy. ↓ Rust JavaScript Java Python Lua use codemp::api::controller::{AsyncReceiver, AsyncSender}; // needed for send/recv trait methods // connect first, api.code.mp is managed by hexed.technology let client = codemp::Client::connect(codemp::api::Config { username: "mail@example.net".into(), password: "dont-use-this-password".into(), ..Default::default() }).await?; // create and join a workspace client.create_workspace("some-workspace").await?; let workspace = client.attach_workspace("some-workspace").await?; // create a new buffer in this workspace and attach to it workspace.create_buffer("/my/file.txt").await?; let buffer = workspace.attach_buffer("/my/file.txt").await?; // write `hello!` at the beginning of this buffer buffer.send(codemp::api::TextChange { start_idx: 0, end_idx: 0, content: "hello!".to_string(), })?; // wait for cursor movements loop { let event = workspace.cursor().recv().await?; println!("user {} moved on buffer {}", event.user, event.sel.buffer); } import * as codemp from codemp; // connect first, api.code.mp is managed by hexed.technology let client = await codemp.connect({ username: "mail@example.net", password: "dont-use-this-password" }); // create and join a workspace await client.createWorkspace("some-workspace"); let workspace = await client.attachWorkspace("some-workspace"); // create a new buffer in this workspace and attach to it await workspace.createBuffer("/my/file.txt"); let buffer = await workspace.attachBuffer("/my/file.txt"); // write `hello!` at the beginning of this buffer await buffer.send({ start_idx: 0, end_idx: 0, content: "hello!", }); // wait for cursor movements while (true) { let event = await workspace.cursor().recv(); console.log(`user ${event.user} moved on buffer ${event.buffer}`); } import mp.code.*; // connect first, api.code.mp is managed by hexed.technology Client client = Client.connect(new data.Config( "mail@example.net", "dont-use-this-password" )); // create and join a workspace client.createWorkspace("some-workspace"); Workspace workspace = client.attachWorkspace("some-workspace"); // create a new buffer in this workspace and attach to it workspace.createBuffer("/my/file.txt"); BufferController buffer = workspace.attachBuffer("/my/file.txt"); // write `hello!` at the beginning of this buffer buffer.send(new data.TextChange( 0, 0, "hello!", java.util.OptionalLong.empty() // optional, used for error detection )); // wait for cursor movements while (true) { data.Cursor event = workspace.cursor().recv(); System.out.printf("user %s moved on buffer %s\n", event.user, event.buffer); } import codemp # connect first, api.code.mp is managed by hexed.technology client = codemp.connect(codemp.Config( username = "mail@example.net", password = "dont-use-this-password" )).wait() # create and join a workspace client.create_workspace("some-workspace").wait() workspace = client.attach_workspace("some-workspace").wait() # create a new buffer in this workspace and attach to it workspace.create_buffer("/my/file.txt").wait() buffer = workspace.attach_buffer("/my/file.txt").wait() # write `hello!` at the beginning of this buffer buffer.send(codemp.TextChange( start_idx = 0, end_idx = 0, content = "hello!" )).wait() # wait for cursor movements while true: event = workspace.cursor().recv().wait() print(f"user {event.user} moved on buffer {event.buffer}") CODEMP = require(codemp) -- connect first, api.code.mp is managed by hexed.technology local client = CODEMP.connect({ username = "mail@example.net", password = "dont-use-this-password" }):await() -- create and join a workspace client:create_workspace("my-workspace"):await() local workspace = client:attach_workspace("my-workspace"):await() -- create a new buffer in this workspace and attach to it workspace:create_buffer("/my/file.txt"):await() local buffer = workspace:attach_buffer("/my/file.txt"):await() -- write `hello!` at the beginning of this buffer buffer:send({ start_idx = 0, end_idx = 0, content = "hello!" }):await() -- wait for cursor movements while true do local event = workspace.cursor:recv():await() print("user " .. event.user .. " moved on buffer " .. event.buffer) end GET STARTED RIGHT AWAY codemp is made by developers for developers. We're sure you'll love it as much as we do! We provide free accounts to everyone: join any workspace you get invited to. To get started, install your editor's codemp extension and register an account. Sign up Now ↑ Community Product Legal GitHub Documentation License Gitter Changelog Privacy Policy Mastodon Protocol Terms of Service Matrix Company