Sym
Use any language's libraries from any language.
Apache Lucene, Apache POI, React — from Python. numpy from Ruby. ggplot2 from Node. Ten languages, every library ecosystem, one host. Nobody talks to anybody — everybody talks to Sym.
import sym
# Apache Lucene — Java's search engine — from Python
lucene = sym.java.package("org.apache.lucene")
index = lucene.store.ByteBuffersDirectory()
# ... index and search, in Python, powered by Java
# React server-rendering — from Python
React = sym.js("react")
html = sym.js("react-dom/server").renderToString(
React.createElement("h1", None, "rendered by React, called from Python"))
# Excel via Apache POI, numpy, any library — same story
Live objects, not just data: construct a Java object from Python, call its methods, pass it back. The object lives in the JVM; Python holds a handle. Same for every language.
Install
The Python core is the engine; every other language ships a thin client that finds it.
pip install sym-lang # the core — gives you `import sym` and the `sym` CLI
npm install symlang # Node client
cargo add sym-bridge # Rust client
composer require rickanjilal/sym # PHP client
gem install sym-lang # Ruby client
go get github.com/RicKanjilal/sym/clients/go # Go
# R: remotes::install_github("RicKanjilal/sym", subdir="clients/r")
# Java: JitPack com.github.RicKanjilal:sym:v0.2.0
THE MATRIX
Every language below can consume every library ecosystem below. 80/80 cells, tested in CI:
Metadata
Release files for sym-lang 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sym_lang-0.2.1.tar.gz | 123.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sym_lang-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 272.0 kB
Release files / sym_lang-0.2.1.tar.gz
| Download URL | sym_lang-0.2.1.tar.gz |
|---|---|
| Size | 123.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fa843812e4359a4223c8513cb9ec2c96565a94cd9737b9de27b505464409a7c5
|
|
BLAKE2b-256 checksum How to use checksums |
60878b9707d1afa53035a0cd28794b8d9d7c81622223308bc24bef8ff26cdc48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / sym_lang-0.2.1-py3-none-any.whl
| Download URL | sym_lang-0.2.1-py3-none-any.whl |
|---|---|
| Size | 148.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6480f673ea7fd7849d9603581bff5e70b3495fc213c1ce450b88cb92cbbd72d5
|
|
BLAKE2b-256 checksum How to use checksums |
3c376545275a8e1bf95f9bdd9eb47dea88970868ef20acbaf408563ebaa81c90
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|