libsyd: SydB☮x /dev/syd interface implementation
libsyd is a comprehensive C library designed for interfacing with the
SydB☮x environment. It offers functionalities for managing sandbox
states, and facilitating runtime configuration and interaction with the
Sydb☮x sandboxing environment.
syd.py is a
Python module that uses ctypes to use libsyd.
- Sydb☮x Manual: https://git.sr.ht/~alip/syd
- LibSyd API Documentation: https://libsyd.exherbolinux.org
- Syd.Py API Documentation: https://pysyd.exherbolinux.org
Features
- Interact with the
/dev/syddevice for sandbox management. - Straightforward integration with C and Python applications.
Prerequisites
- Rust (1.65 or later)
- Python 3.x (if using Python bindings)
Building and Installing from Source
To build and install libsyd from source, follow these steps:
- Clone the repository:
- Use the Makefile which utilizes Cargo to build
- Switch to root and install
sudo make install
BUGS
Hey you, out there beyond the wall,
Breaking bottles in the hall,
Can you help me?
Report bugs to SydB☮x's bug tracker at https://todo.sr.ht/~alip/syd/:
- Always be polite, respectful, and kind: https://css-tricks.com/open-source-etiquette-guidebook/
- Keep your final change as small and neat as possible: https://tirania.org/blog/archive/2010/Dec-31.html
- Attaching poems with the bug report encourages consideration tremendously.
COPYRIGHT
- SPDX-License-Identifier: LGPL-3.0-or-later
- Copyright © 2023 Ali Polatel alip@chesswob.org
ChangeLog
3.0.5
- ruby: Add missing functions
Syd.deny_read_delandSyd.deny_read_rem. - lisp: fix various warnings during byte-compiling with recent Emacs.
- ruby: Add example demonstrating usage.
3.0.4
- ruby: Initial Ruby bindings using
ffigem. - lisp: Add new function
syd-info. - lisp: Add new function
syd-filter-memandsyd-filter-pid. - go: Add new functions
FilterMemandFilterPid. - perl: Add new functions
filter_memandfilter_pid. - python: Add new functions
filter_memandfilter_pid. - Implement new functions
syd_filter_memandsyd_filter_pid.
3.0.3
- Add
syd.el, SydB☮x interface for Emacs Lisp - use itoa crate to make
syd_pid_maxfunction simpler and more efficient. - add examples demonstrating library usage
3.0.2
- Fix tests on musl systems
- Drop dependency on the nix crate
- Add additional safety checks that
/dev/sydis the correct file - Fix a segfault that happens on musl systems
3.0.1
- go: initial libsyd Go bindings
3.0.0
- Define
LockStateenum andLOCK_OFF,LOCK_EXECandLOCK_ONconstants. These were already defined for perl, and python so this makes the C library compatible. - use itoa crate to make
syd_loadfunction simpler and more efficient. - python: Implement the new function load.
- perl: Implement the new function load.
- Implement the new function syd_load.
- python: Implement new functions panic and reset.
- perl: Implement new functions panic and reset.
- Implement new functions syd_panic() and syd_reset().
- perl: fix argument handling of the
execfunction - perl: new constant
$syd::LIBSYD_PATHpoints to the path of libsyd.so. - Start using
nixto calllstatrather than Rust std. - Define
__all__forpysydsuch thatfrom syd import *becomes practical.
3.0.0-alpha.6
- Initial Perl bindings
3.0.0-alpha.5
- Fix tests
3.0.0-alpha.4
- Drop cbindgen dependency, include
syd.h
3.0.0-alpha.3
- Add build instructions to the readme
3.0.0-alpha.2
- Fix a problem with Doxygen API documentation generation
3.0.0-alpha.1
- Initial implementation of libsyd & syd.py






