Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Links:
Documentation <http://python-epc.readthedocs.org/>
_ (at Read the Docs)Repository <https://github.com/tkf/python-epc>
_ (at GitHub)Issue tracker <https://github.com/tkf/python-epc/issues>
_ (at GitHub)PyPI <http://pypi.python.org/pypi/epc>
_Travis CI <https://travis-ci.org/#!/tkf/python-epc>
_ |build-status|Other resources:
kiwanami/emacs-epc <https://github.com/kiwanami/emacs-epc>
_
(Client and server implementation in Emacs Lisp and Perl.)tkf/emacs-jedi <https://github.com/tkf/emacs-jedi>
_
(Python completion for Emacs using EPC server.).. |build-status| image:: https://secure.travis-ci.org/tkf/python-epc.png ?branch=master :target: http://travis-ci.org/tkf/python-epc :alt: Build Status
EPC is an RPC stack for Emacs Lisp and Python-EPC is its server side
and client side implementation in Python. Using Python-EPC, you can
easily call Emacs Lisp functions from Python and Python functions from
Emacs. For example, you can use Python GUI module to build widgets
for Emacs (see examples/gtk/server.py
_ for example).
Python-EPC is tested against Python 2.6, 2.7 and 3.2.
To install Python-EPC and its dependency sexpdata_, run the following command.::
pip install epc
.. _sexpdata: https://github.com/tkf/sexpdata
Save the following code as my-server.py
.
(You can find functionally the same code in examples/echo/server.py
_)::
from epc.server import EPCServer
server = EPCServer(('localhost', 0))
@server.register_function def echo(*a): return a
server.print_port() server.serve_forever()
And then run the following code from Emacs.
This is a stripped version of examples/echo/client.el
_ included in
Python-EPC repository_.::
(require 'epc)
(defvar my-epc (epc:start-epc "python" '("my-server.py")))
(deferred:$ (epc:call-deferred my-epc 'echo '(10)) (deferred:nextc it (lambda (x) (message "Return : %S" x))))
(message "Return : %S" (epc:call-sync my-epc 'echo '(10 40)))
.. _examples/echo/server.py: https://github.com/tkf/python-epc/blob/master/examples/echo/server.py .. _examples/echo/client.el: https://github.com/tkf/python-epc/blob/master/examples/echo/client.el
If you have carton_ installed, you can run the above sample by simply typing the following commands::
make elpa # install EPC in a separated environment make run-sample # run examples/echo/client.el
.. _carton: https://github.com/rejeep/carton
For example of bidirectional communication and integration with GTK,
see examples/gtk/server.py
_. You can run this example by::
make elpa make run-gtk-sample # run examples/gtk/client.el
.. _examples/gtk/server.py: https://github.com/tkf/python-epc/blob/master/examples/gtk/server.py
Python-EPC is licensed under GPL v3. See COPYING for details.
FAQs
EPC (RPC stack for Emacs Lisp) implementation in Python
We found that epc demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.