{"id":20279337,"url":"https://github.com/simplito/privmx-webendpoint","last_synced_at":"2026-04-09T11:26:38.754Z","repository":{"id":261392525,"uuid":"877970189","full_name":"simplito/privmx-webendpoint","owner":"simplito","description":"JavaScript library designed to work in browser environment, used by PrivMX communication channels.","archived":false,"fork":false,"pushed_at":"2026-03-05T15:51:57.000Z","size":14393,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-03-05T18:41:50.230Z","etag":null,"topics":["communication","cryptography","end-to-end-encryption","privacy","web","zero-knowledge"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simplito.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-24T14:53:27.000Z","updated_at":"2025-12-08T15:08:21.000Z","dependencies_parsed_at":"2024-11-06T10:57:38.948Z","dependency_job_id":"9511886f-0ae2-4500-b161-245fe0a5c69b","html_url":"https://github.com/simplito/privmx-webendpoint","commit_stats":null,"previous_names":["simplito/privmx-webendpoint"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/simplito/privmx-webendpoint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplito%2Fprivmx-webendpoint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplito%2Fprivmx-webendpoint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplito%2Fprivmx-webendpoint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplito%2Fprivmx-webendpoint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simplito","download_url":"https://codeload.github.com/simplito/privmx-webendpoint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplito%2Fprivmx-webendpoint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30329698,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["communication","cryptography","end-to-end-encryption","privacy","web","zero-knowledge"],"created_at":"2024-11-14T13:29:33.344Z","updated_at":"2026-04-09T11:26:38.741Z","avatar_url":"https://github.com/simplito.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PrivMX Web Endpoint\n\n**PrivMX Web Endpoint** is a robust JavaScript library designed for the browser environment. It serves as the client-side gateway to PrivMX Bridge secure communication channels, enabling applications to encrypt, decrypt, and manage data securely.\n\nUnder the hood, it wraps the native **PrivMX Endpoint** library (written in C++) using **WebAssembly (Wasm)**. This architecture ensures high-performance cryptography while providing a developer-friendly JavaScript API.\n\n## Key Features\n\n* **End-to-End Encryption (E2EE):** Client-side encryption for all data transfers.\n* **Universal Tools:** Build complex communication logic using simple primitives:\n* **Threads:** For contextual messaging and collaboration.\n* **Stores:** For secure file and data storage.\n* **Inboxes:** For secure, one-way communication with external or anonymous users (e.g., public forms)\n* **Kvdbs:** For encrypted key-value database storage\n* **Events queue:** For real-time updates and system event handling.\n\n* **Performance:** Powered by a C++ core compiled to WebAssembly.\n* **Type-Safe:** Fully typed with TypeScript definitions included.\n\n## Installation\n\nInstall the package via npm:\n\n```bash\nnpm install @simplito/privmx-webendpoint\n\n```\n\n### Documentation \u0026 Examples\n\n* **Getting Started Guide:** [Introduction to PrivMX JS](https://docs.privmx.dev/docs/latest/js/introduction)\n* **API Reference:** [Full API Documentation](https://docs.privmx.dev/docs/latest/reference/webendpoint/api-reference/connection)\n\n## Building\n\nIf you want to build the library from source, follow these steps.\n\n### Prerequisites\n\n* Node.js\n* CMake: Required to build the Wasm core (npm run build:wasm).\n* Clang-format (v18): Required for formatting and linting of C++ code\n\n### Build Scripts\n\nThe project uses a combined pipeline to compile the C++ core to Wasm and bundle the TypeScript code.\n\n| Command | Description |\n| --- | --- |\n| `npm run build` | Runs the full pipeline: Clean -\u003e Build Wasm -\u003e Compile TS -\u003e Bundle Webpack. |\n| `npm run build:wasm` | Compiles the C++ source code to WebAssembly using `scripts/pipeline.sh`. |\n| `npm run build:js` | Compiles TypeScript (`tsc`) and bundles assets (`webpack`). |\n| `npm run watch:types` | Watches for TypeScript changes. |\n\n## Testing\n\nThe project employs a dual testing strategy: **Jest** for unit logic and **Playwright** for End-to-End (E2E) integration testing.\n\n### Unit Tests\n\nRun standard unit tests using Jest:\n\n```bash\nnpm test\n\n```\n\n### End-to-End (E2E) Tests\n\nE2E tests require a running Docker backend (PrivMX Bridge). The tests use **Playwright** to spin up browser instances and execute scenarios against the local backend.\n\n```bash\n# Run all E2E tests\nnpm run test:e2e\n\n```\n\n*Note: Ensure Docker is running before executing E2E tests.*\n\n## Linting \u0026 Formatting\n\nMaintain code quality using ESLint and Prettier:\n\n```bash\n# Check for linting errors\n\n# Typescript\nnpm run lint\n# C++\nnpm run lint:clang-format\n\n# Auto-format code\n\n# Typescript\nnpm run format\n# C++\nnpm run format:clang\n```\n\n## License\n\nThis software is licensed under the **PrivMX Free License**.\nCopyright © Simplito. All rights reserved.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplito%2Fprivmx-webendpoint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimplito%2Fprivmx-webendpoint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplito%2Fprivmx-webendpoint/lists"}